很像这个问题:
说代码是
def findFirst[T](objects: List[T]):T = {
for (obj <- objects) {
if (expensiveFunc(obj) != null) return /*???*/ Some(obj)
}
None
}
如何在scala中从这样的for循环中产生单个元素?
我不想使用 find,正如原始问题中提出的那样,我很好奇是否以及如何使用 for 循环来实现它。
* 更新 *
首先,感谢所有评论,但我想我的问题并不清楚。我正在拍摄这样的东西:
val seven = for {
x <- 1 to 10
if x == 7
} return x
这不会编译。这两个错误是: - 在方法定义之外返回 - 方法 main 有返回语句;需要结果类型
我知道 find() 在这种情况下会更好,我只是在学习和探索语言。在具有多个迭代器的更复杂的情况下,我认为使用 for 查找实际上是有用的。
感谢评论者,我会开始赏金来弥补这个问题的糟糕姿势:)