1

ハッピーホリデー!

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 に変更されました

しかし、「番号が設定されました...」と表示されなくなりました。

4

1 に答える 1