2014-02-27 48 views

回答

6

因爲他們是val秒,僅此而已。所以不需要指定它。

+0

謝謝。實際上,如果你在方法/函數的參數標識符之前放置了var或val,scala會投訴;它要求參數應該隱式地爲val。 (當然這種情況是主要的構造函數的參數不同) – foghorn

+0

這是一個不令人滿意的答案,因爲在Java中你會得到默認爲可變本地(和Scala迎合Java的,他們說當地mutables都OK)。事實上,Scala函數params可以像ctor params一樣工作,尤其是因爲他們試圖使cntors與defs保持一致,除非ctors總是有一個param列表,所以你會說'f(var i)'以防萬一你想要分配給它。 Ctors已經在抱怨像x(var i:=> Int')這樣的異常,問題是爲什麼,而不是「如果我......會發生什麼?」 –

+0

@ som-snytt主構造參數可以是'val's或'var不是局部變量(這將是唯一可能的函數參數),這只是避免類似Foo(_bar:Int){var bar:Int = _bar}''重複的快捷方式。 –

相關問題