【Swift】参照型と値型について
参照型と値型の違いについて
参照型
参照型とは、インスタンスが値への参照を表す型のことを言います。下記の例では、a、bという空箱のに対して、同じ場所からデータを持ってきて(参照して)います。なので、bのプロパティの値を変更するとaの値も同時に変化していることが分かります。
class StringClass {
var string = "何も言いません"
}
let a = StringClass()
print(a.string) // 何も言いません
var b = a
b.string = "こんにちは"
print(b.string) // こんにちは
print(a.string) // 何も言いません
値型
値型とは、インスタンスが値への参照ではなく値そのものを表す型のことを言います。下の例で言うと、インスタンス化する際にc,dという空箱にStringStructがコピーされているイメージです。それぞれのプロパティの値を確認しても、別々のものとして存在していることがわかります。なのでその後の操作や演算等はもとのデータには影響しません。
struct StringStruct {
var string = "何も言いません"
}
let c = StringStruct()
var d = c
d.string = "こんばんは"
print(c.string) // 何にも言いません
print(d.string) // こんばんは
イメージ(参照型)
プロパティbの値が変更された為、値を参照しているaの値も変更されていることがわかります。
イメージ(値型)
Author And Source
この問題について(【Swift】参照型と値型について), 我々は、より多くの情報をここで見つけました https://qiita.com/haruto861/items/499c26a7709294bde585著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .