Skip to content

Instantly share code, notes, and snippets.

@ezura
Created February 26, 2016 05:27
Show Gist options
  • Save ezura/39c0f71fabefe39c7ba7 to your computer and use it in GitHub Desktop.
Save ezura/39c0f71fabefe39c7ba7 to your computer and use it in GitHub Desktop.
class SampleClass {
var intVar: Int?
}
struct SampleStruct {
var sampleClassVar: SampleClass = SampleClass()
}
var a = SampleStruct()
a.sampleClassVar.intVar = 1
// SampleStruct は構造体なのでコピーされたものが b に入ります
// なので、a と b はそれぞれ違うものを指してます
var b = a
// b のプロパティの sampleClassVar (class) の値を変えてみる
b.sampleClassVar.intVar = 2
a.sampleClassVar.intVar // 2
b.sampleClassVar.intVar // 2
/* sampleClassVar は参照型なので参照がコピーされ (厳密にはこの説明は変な気がするけれど)
「a」と 「a のコピーである b」 のプロパティの sampleClassVar (class) は同じものを指すという状態になります。*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment