はじめに
この記事では、Swiftで多用する構造体についてまとめました。
⚠️当方初学のため認識違いがある可能性大です
誤りを見つけた際はコメントにて指摘していただけると幸いです🙇♀️🙇♂️
参考
この記事は、以下の情報を参考にして執筆しました。
構造体とは
構造体とは、値型の一種であり、ストアドプロパティの組み合わせによって一つの値を表す。
定義方法
構造体の定義にはstructキーワードを使用する。
構造体の定義
}
プロパティやメソッド、イニシャライザなどの型を構成する要素は構造体で全て利用可能で、{}内に定義できる。
ストアドプロパティの変更による値の変更
構造体のストアドプロパティを変更することは、構造体を別の値に変更することであり、その時は構造体が入っている変数や定数への再代入が必要となる。
ただし、定数に代入されている場合ストアドプロパティは変更できない。
メソッド内のストアドプロパティの変更
構造体のストアドプロパティの変更は再代入を必要とするため、ストアドプロパティの変更を含むメソッドにはmutatingキーワードが必要。
ストアドプロパティの変更を含んでいるにもかかわらずmutatingキーワードがついていない場合、コンパイルエラーとなる。
メンバーワイズイニシャライザ
型のインスタンスは初期化後にすべてのプロパティが初期化されている必要がある。
独自にイニシャライザを定義して初期化の処理を行うこともできるが、構造体では自動的に定義されるメンバーワイズイニシャライザというイニシャライザを利用できる。
メンバーワイズイニシャライザは、型が持っている各ストアドプロパティと同名の引数をとるイニシャライザ。
また、ストアドプロパティが初期化式とともに定義されている場合、そのプロパティに対応するメンバーワイズイニシャライザの引数はデフォルト引数を持ち、呼び出し時の引数の指定を省略できる。