scala - 用于提前退出循环的功能代码

标签 scala functional-programming

如何以函数式风格(scala 惯用)重构此代码

def findFirst[T](objects: List[T]):T = {
  for (obj <- objects) {
    if (expensiveFunc(obj) != null) return obj
  }
  null.asInstanceOf[T]
}

最佳答案

这几乎与 find 方法完全相同,只是它返回一个 Option。因此,如果您想要这种确切的行为,您可以添加对 Option.orNull 的调用,如下所示:

objects.find(expensiveFunc).orNull

关于scala - 用于提前退出循环的功能代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6729785/

相关文章:

Scala - 遍历两个数组

haskell - 带有中缀函数的偏应用

scala - 为什么这两个代码块对于 Option 类是等价的?

scala - 对两种类型之间的二元关系建模

scala - 如何通过 1 的位置列表解码 0 和 1 的列表?

Python:以函数式编程方式组合两个列表并删除重复项

clojure - "do additional stuff when ..."的 Clojure 方式是什么

javascript - Functional Javascript 书籍示例中的错误

Haskell:使用匿名/lambda 函数进行函数组合

scala - 如何清理 "a type was inferred to be ` Any`"警告?