👌
struct とは?
structとは?
struct は値型です。
プロパティやメソッドを定義することによって様々なデータや振舞いを形成することができます。
値型とは?
値型とは、変数の値が参照ではなく直接、値をもつ型のことをいいます。変数や定数に値が代入されたときや関数に渡されたときに、新たに値がコピーされてメモリ領域を確保します。複数のインスタンスで値を共有することはなく、一度代入された値は再代入をしない限りは不変です。そのため、値の変更が予測しやすいようになっています。
struct の定義方法
struct 名前 {
}
異なる変数に代入されてもコピーされ独立したデータとなる
簡単に言うと
struct: 値型→ コピーされる
class: 参照型 → 共有される
struct Person {
var name: String
var age: Int
}
var person1 = Person(name: "Tomo", age: 33)
var person2 = Person(name: "Yutaro", age: 23)
var person3 = person1
person3.name = "Taro" → これをクラスでやった場合、person1.name もTaroに変わる
print(person3.name) → Taro
Discussion