1
ハッピーホリデー!構造体に設定されたVarは、変更時に本当に置き換えられますか?
ノイバーグの「iOS 10プログラミングの基礎」の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--
:123
didSetの変化から検出:ドン
56にただ42:didSet 123
42への変化から検出これ以上参照しないでください。」数字が設定されました... "
ありがとうございました。私は、インスタンス化プロセスを経た別のインスタンスを少なくとも暗示していたという言い回し「私とは別のインスタンス」によって誤解されたと思います。 – JackyChan
@ジャッキーチェン:右 - o! –