解析 Swift 錯誤:「Cannot assign to value: ‘X’ is a get-only property」
Swift 是一種強大的程式語言,但是當你嘗試做一些不正確的事情時,它也會給你一些錯誤訊息。其中一個常見的錯誤訊息是「Cannot assign to value: ‘X’ is a get-only property」,這個錯誤訊息表示你嘗試對一個只能讀取的屬性賦值,而不能寫入。
這個錯誤訊息的原因是因為 Swift 中的屬性可以被定義為只能讀取,而不能被寫入。這種屬性被稱為「get-only」屬性,它們只能被讀取,而不能被寫入。
舉個例子,假設你有一個名為「Person」的類別,它有一個只能讀取的屬性「name」:
class Person { let name: String init(name: String) { self.name = name } }
在這個例子中,「name」屬性被定義為「let」,這表示它是一個只能讀取的屬性。如果你嘗試對它賦值,Swift 就會給你一個「Cannot assign to value: ‘X’ is a get-only property」的錯誤訊息:
let person = Person(name: "John") person.name = "Jane" // Cannot assign to value: 'name' is a get-only property
為了解決這個問題,你可以將「name」屬性定義為「var」,這樣就可以對它賦值:
class Person { var name: String init(name: String) { self.name = name } } let person = Person(name: "John") person.name = "Jane" // OK
總結來說,如果你收到「Cannot assign to value: ‘X’ is a get-only property」的錯誤訊息,那表示你嘗試對一個只能讀取的屬性賦值,而不能寫入。要解決這個問題,你可以將該屬性定義為「var」,這樣就可以對它賦值。