mutating getter / nonmutating setter
會改變物件屬性的 getter 與不會改變物件屬性的 setter。
/*
Mutating Getter & Nonmutating Setter
https://gist.github.com/hanawat/26f64afba4e6461dc27c
*/
// Mutating Getter
struct Reference {
private let _value: Double // inner value of this instance
var count = 0 // times this inner value has been referenced.
init(value: Double) { _value = value }
var value: Double {
mutating get { // ⭐️ mutating getter
count += 1 // mutates `count` property
return _value
}
}
}
var ref = Reference(value: 0.125)
for _ in 0..<5 { print(ref.value) } // reference its value 5 times.
print(ref.count) // 5Last updated