mutating getter / nonmutating setter
會改變物件屬性的 getter 與不會改變物件屬性的 setter。
Last updated
Was this helpful?
會改變物件屬性的 getter 與不會改變物件屬性的 setter。
Last updated
Was this helpful?
Was this helpful?
在預設的情況下,getter 是 nonmutating,而 setter 是 mutating。
但如果 getter 內部的程式碼變更了物件的屬性,則這個 getter 必須標註 mutating。
反過來說,如果 setter 內部的程式碼沒有變更物件的屬性,那麼這個 setter 就可以標註為 nonmutating,當標註為 nonmutating 之後,就算是一個 let 變數,也可以用這個 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 =