1. ホーム
  2. kotlin

[解決済み] Kotlinのvarとvalの違いは何ですか?

2022-03-16 21:05:28

質問

とはどのような違いがあるのでしょうか? varval をKotlinで使うか?

私はこのリンクに目を通しました。

KotlinLangです。プロパティとフィールド

このリンクに記載されている通りです。

リードオンリープロパティ宣言の完全な構文は mutableの場合は、varの代わりにvalで始まることと、2つの点で異なります。 はセッターを許しません。

しかし、その直前にセッターを使う例があります。

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
}

とは、具体的にどのような違いがあるのでしょうか。 varval ?

なぜ両方が必要なのか?

これは 重複しない Kotlinの変数、Javaとの違い。'var' vs 'val'? というのは、一般的なことではなく、ドキュメントの特定の例に関連した疑問について尋ねているからです。

どのように解決するのですか?

あなたのコードで 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 と同じです。 final モディファイアを使用します。ご存知のように、この修飾子には final 変数のプロパティを変更することができます。