我正在尝试学习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