2016-11-15 7 views

答えて

8

関数パラメータは常に読み取り専用です(つまり、valと宣言されます)。
あなたはそれを変更したい場合は、(新しい)ローカル変数を使用する必要があります。

fun test(temp: Int) { 
    var myTemp = temp 
    myTemp = 5 
} 
+0

フォローアップの質問。なぜ関数のパラメータは読み込み専用ですか?それは何の目的ですか? – user3282666

+1

Kotlinは、変更可能性よりも不変であることを好みます。これは、デフォルトでは読み取り専用のパラメータに反映されます。再割り当てする場合は、同じ名前の変数を使用してシャドウすることができます: 'var temp = temp' –

+0

パラメータに値を代入することは、Javaでは悪い習慣です。関数外のオブジェクトの値が変更されると考えるかもしれません。それは禁じられており、それは良い決断だった。 –

0

tempはローカル変数ではありません - それは、関数のパラメータです。それを再割り当てする必要はありません。

関連する問題