struct
を使うことが多いです。 // イミュータブルクラス final class User { let age: Int = 0 } var user = User() // 年齢を 1 増やす user = User(age: user.age + 1)
// struct struct User { var age: Int = 0 } var user = User() // 年齢を 1 増やす user.age += 1
(edited)if
文の例で考えると、↓のような違いが生まれます。 // イミュータブルクラス user = if ... { // if 式がほしい User(age: user.age + 1) } else { User(age: user.age + 2) }
// struct if ... { // if 文で十分 user.age += 1 } else { user.age += 2 }
if
が式でなく文なのはミュータブルな値型( struct
)を多用する Swift と馴染んでおり、適切な言語仕様ではないかと思います。 (edited)