2016-11-15 121 views

回答

8

功能參數始終爲只讀(即聲明爲val);
如果你想改變它,你將需要使用一個(新的)局部變量:

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

只是跟進問題。爲什麼函數參數只能讀取?它的用途是什麼? – user3282666

+1

Kotlin支持可變性的不變性,這反映在參數默認爲只讀。如果你想重新分配它,你可以通過使用一個名字相同的變量來隱藏它:'var temp = temp' –

+0

在Java中給參數賦值是一種不好的做法。有人可能會認爲它會改變函數外的對象的價值。它是Kotlin禁止的,這是一個很好的決定。 –

0

temp不是一個局部變量 - 這是一個函數的參數。沒有重新分配它的意義。