Avatar
うーん、↓を防ぎたいニーズはむしろ現実的にありそうな気がしています。再代入以外で let プロパティが書き換えられてるのって直感に反しませんか? struct Character { let name: String var hp: Int mutating func foo() { self = Character(name: "Hoge", hp: hp) } } var character = Character(name: "ゆうしゃ", hp: 153) character.foo() print(character.name) // "Hoge"
4:07 AM
replacing func を呼ぶ場合は &character.foo() とか特殊な構文にしてもいいかも?