我正在嘗試學習scala,迄今爲止它一直很棒。 我很難找出如何解決這個錯誤,我試圖教育自己關於foreach和返回他們內部的陳述,但我仍然不明白的問題,所以我在這裏發佈我的問題:foreach中返回值的方法
def a: Int = {
for(i <- Array(1,2,3,4,5)){
if(i == 3)
return i
}
}
上述方法將無法編譯,我得到以下錯誤:
error: type mismatch;
found : Unit
required: Int
for(i <- Array(1,2,3,4,5)){
^
我明白了一個類型是什麼,但我無法弄清楚如何解決這個問題。我如何將我分配給int?預期的行爲是該方法返回3.這是否會發生,以及我的代碼有什麼問題?
在Scala中通常不會使用'return',通常可以避免像'Array'這樣的可變數據結構。你的方法的慣用等價物(包括drexin的答案中的默認值)可能類似於'def a = 1至5 find(_ == 3)getOrElse 0'(或者'val a = 3' :)) – 2012-04-06 12:55:36