Kotlin のvar
との違いは何ですか?val
私はこのリンクをたどってみました:
このリンクに記載されている通り:
読み取り専用プロパティ宣言の完全な構文は、可変プロパティ宣言とは 2 つの点で異なります。var ではなく val で始まり、setter は許可されません。
しかし、その直前にセッターを使用する例があります。
fun copyAddress(address: Address): Address {
val result = Address() // there's no 'new' keyword in Kotlin
result.name = address.name // accessors are called
result.street = address.street
// ...
return result
}
var
との正確な違いは何ですかval
?
なぜ両方必要なのでしょうか?
これは重複ではありませんKotlin の変数、Java との違い: 「var」と「val」の違いは?私が質問しているのは、一般的な疑問ではなく、ドキュメント内の特定の例に関連する疑問です。
ベストアンサー1
コードはresult
変更されていませんが、var
プロパティは変更されています。以下のコメントを参照してください。
fun copyAddress(address: Address): Address {
val result = Address() // result is read only
result.name = address.name // but not their properties.
result.street = address.street
// ...
return result
}
val
Java の修飾子と同じですfinal
。ご存知のとおり、final
変数に再度割り当てることはできませんが、そのプロパティを変更することはできます。