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

2024-04-15

如何以函数式风格重构此代码(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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用于提前退出循环的功能代码 的相关文章

  • 火花内存不足

    我有一个文件夹 里面有 150 G 的 txt 文件 大约 700 个文件 平均每个 200 MB 我使用 scala 来处理文件并最终计算一些汇总统计数据 我认为有两种可能的方法可以做到这一点 手动循环所有文件 对每个文件进行计算并最终合
  • 在 scala 宏中使用 LabelDef (2.10)

    我正在尝试 scala 2 10 宏功能 我使用时遇到问题LabelDef但在某些情况下 在某种程度上 我偷看了编译器的代码 阅读了摘录米格尔 加西亚的论文 http lampwww epfl ch magarcia但我还是卡住了 如果我的
  • 如何使用 Scala 从 Spark 更新 ORC Hive 表

    我想更新 orc 格式的 hive 表 我可以从 ambari hive 视图进行更新 但无法从 sacla spark shell 运行相同的更新语句 objHiveContext sql select from table name 能
  • 如何在不改变也不重新分配的情况下实现可设置和可检索的状态?

    编写代码时可以遵循以下几条规则 当没有重新分配时 代码更容易阅读和推理 许多 linter 推荐首选const只要有可能 代码也更容易阅读和推理对象何时不会发生变化 如果您在代码的一部分中定义了一个对象 那么知道您可以在其他地方自由引用该对
  • 用于共享大型不可变对象的工厂/缓存策略

    我的问题很像上一篇文章最佳哈希集初始化 Scala Java https stackoverflow com questions 14714900 optimal hashset initialization scala java 我想用的
  • @tailrec为什么这个方法不编译为“包含不在尾部位置的递归调用”?

    tailrec private def loop V key String V key match case gt loop key 此方法无法编译并抱怨它 包含不在尾部位置的递归调用 有人可以向我解释一下发生了什么事吗 这个错误消息对我来
  • Python 相当于 Scala 案例类

    Python 中是否有与 Scala 的 Case Class 等效的东西 就像自动生成分配给字段而无需编写样板的构造函数一样 当前执行此操作的现代方法 从 Python 3 7 开始 是使用数据类 https www python org
  • 如何使方法通用而不出现“未找到匹配的形状”

    除了编写大量样板文件之外 我不知道如何克服这个 找不到匹配的形状 错误 要点中说明的基本思想是 我有一个非常基本的方法版本 有效 但非常具体 然后是一个采用mapper参数并且更通用 也可以工作 但特定于一种特定类型 然后是第三个版本 它采
  • 使用什么框架来引导我的第一个生产 scala 项目?

    我正在第一次涉足 scala 的生产应用程序 该应用程序当前打包为 war 文件 我的计划是创建 scala 编译工件的 jar 文件 并将其添加到 war 文件的 lib 文件夹中 我的增强功能是通过 Jersey 公开的 mysql 支
  • Slick:将操作与 DBIOAction 的 Seq 组合起来

    我有 工作 以下代码 val actions for lt slickUsers insertOrUpdate dbUser loginInfo lt loginInfoAction lt slickUserLoginInfos DBUse
  • 如何将数据帧转换为 JSON 并使用密钥写入 kafka 主题

    我正在尝试以 JSON 格式向 kafka 写入一个数据帧 并在 Scala 中向该数据帧添加一个键 我目前正在使用 kafka spark 中的这个示例 df selectExpr CAST key AS STRING CAST valu
  • 构造微积分中的“Refl”东西?

    在语言中 例如Agda Idris or Haskell对于类型扩展 有一个 键入类似于以下内容的内容 data a b where Refl a a a b意思是a and b是相同的 这样的类型可以定义在结构演算 https en wi
  • sh / Bash shell 脚本中 !# (bang-pound) 的含义是什么?

    我想了解这个 Scala 脚本是如何工作的 usr bin env bash exec scala 0 object HelloWorld def main args Array String println Hello world arg
  • 具有通用返回类型的可选函数参数

    您将如何实现通过正则表达式解析某些输入并将创建的字符串转换为其他类型的类 我的做法是 class ARegex T regex Regex reform Option String gt T def findFirst input Stri
  • 对于 Scala,“无全局类型推断”是什么意思?

    我读过 Scala 的类型推断不是全局的 因此人们必须在方法上放置类型注释 这会是 本地 类型推断吗 我只知道一点点 原因是它面向对象的本质 但我不清楚 是否有 全局类型推断 的解释以及为什么 Scala 不能让初学者可以理解 The pr
  • 如何在对象的多个方法上使用 functools.partial 并无序冻结参数?

    我发现 functools partial 非常有用 但我希望能够无序地冻结参数 您想要冻结的参数并不总是第一个 并且我希望能够将其应用于多个一次在类上使用方法 以创建一个代理对象 该对象具有与底层对象相同的方法 除了它的一些方法参数被冻结
  • 无法在 NetBeans 7.4rc1 上安装 nb-scala

    我已经安装了 NB 7 4rc1 并从下载了 nb scalahttp sourceforge net projects erlybird files nb scala http sourceforge net projects erlyb
  • 从apache Spark中的文本文件查找rdd中存储的数据大小

    我是 Apache Spark 版本 1 4 1 的新手 我编写了一段小代码来读取文本文件并将其数据存储在 Rdd 中 有没有一种方法可以获取 rdd 中数据的大小 这是我的代码 import org apache spark SparkC
  • 强制类型差异

    在 Scala 中 我可以在编译时强制执行类型相等 例如 case class Foo A B a A b B implicit ev A B scala gt Foo 1 2 res3 Foo Int Int Foo 1 2 scala
  • Scala:var List 与 val MutableList

    在 Odersky 等人的 Scala 书中 他们说使用列表 我还没有从头到尾读过这本书 但所有的例子似乎都使用了 val List 据我了解 还鼓励人们使用 vals 而不是 vars 但在大多数应用程序中 使用 var List 或 v

随机推荐