scala – 早期退出循环功能代码

如何重写这个代码的功能样式(scala惯用语)

def findFirst[T](objects: List[T]):T = {
  for (obj <- objects) {
    if (expensiveFunc(obj) != null) return obj
  }
  null.asInstanceOf[T]
}
这几乎是find方法所做的,除了它返回一个选项.所以如果你想要这个确切的行为,你可以添加一个对Option.orNull的调用,像这样:

objects.find(expensiveFunc).orNull
翻译自:https://stackoverflow.com/questions/6729785/functional-code-for-looping-with-early-exit

转载注明原文:scala – 早期退出循环功能代码