ハッピーホリデー!
Neuberg の「iOS 10 Programming Fundamentals」の p.147 で行き詰まりました。彼の主張は、「明らかに値型のインスタンスを変更するとき、実際にはそのインスタンスを別のインスタンスに置き換えている」というものです。
質問: これが正しい場合、新しいインスタンスが初期化されていないのはなぜですか??
///////////////////// Slight modification from page 147 in Neuberg, 2016 edition
struct Digit {
var number : Int
init(_ n:Int) {
self.number = n
print("number was set in the initializer to: \(n)")
}
}
var d : Digit = Digit(123) {
didSet {
print("didSet detected old: \(oldValue.number) to new: \(d.number)")
}
}
d.number = 42
d.number = 56
Prints_number
がイニシャライザで次のように設定されました: 123 didSet の
変更が検出されました: 123 から 42
検出された didSet の変更が 42 から 56 に変更されました
しかし、「番号が設定されました...」と表示されなくなりました。