プロパティをいじってほしくなくて、読み取り専用(readonly)にしたいことはよくあるかと思う。そんなときに private(set) という便利なものがある。
Swiftでreadonlyにする – private(set)を使う –
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class User {     private(set) var name = "sato"     func update() {         name = "apple"     } } // 同ファイルから let user = User() user.name = "apple" // エラー print(user.name) // "apple" // 別ファイルから let user2 = User() user2.name = "apple" // エラー print(user2.name) // "sato" | 
こんな感じで、クラス内からはsetできるけど外からはエラーになる。
もちろん読み取りは別ファイルからもできるよ。


