読者です 読者をやめる 読者になる 読者になる

mzgkworks

iOSを中心にプログラミング関係について書く

【Swift】構造体

黒帯本iOS開発の基礎を学び直す。
P.79 Chapter 2-03

クラスを使うのがいいのか、構造体を使うのがいいのかはまだよくわからない。
P. 80の図がわかりやすい

クラスとの違い

  • 継承ができない
  • メソッドの引数にオブジェクトを渡した場合、値渡しになる
    • 参照渡しではないので、値を変更しても元は影響を受けない

クラス

  • 関数Aでクラス(インスタンス)のnameプロパティに佐藤をセット
  • 関数Bにクラスを渡す(参照渡し)
  • 関数Bで渡されたクラスのnameに鈴木をセット
  • 関数Aのクラスのnameは鈴木になる

構造体

  • 関数Aで構造体(インスタンス)のnameプロパティに佐藤をセット
  • 関数Bに構造体を渡す(値渡し)
  • 関数Bで渡された構造体のnameに鈴木をセット
  • 関数Aの構造体のnameは佐藤のまま