Created
February 26, 2016 05:27
-
-
Save ezura/39c0f71fabefe39c7ba7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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