Kotlin の var と val の違いは何ですか? 質問する

Kotlin の var と val の違いは何ですか? 質問する

Kotlin のvarとの違いは何ですか?val

私はこのリンクをたどってみました:

KotlinLang: プロパティとフィールド

このリンクに記載されている通り:

読み取り専用プロパティ宣言の完全な構文は、可変プロパティ宣言とは 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
}

valJava の修飾子と同じですfinal。ご存知のとおり、final変数に再度割り当てることはできませんが、そのプロパティを変更することはできます。

おすすめ記事