加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 有什么理由来避免回报

发布时间:2020-12-16 09:38:34 所属栏目:安全 来源:网络整理
导读:有时我会看到大量的Scala代码,有几个嵌套的条件和匹配级别,这将使用明确的返回值退出函数会更加清晰。 避免这些明确的退货声明有什么好处吗? 解决方法 返回可以通过抛出异常来实现,因此它可能在声明方法结果的标准方式上具有一定的开销。 (感谢Kim Stebe
有时我会看到大量的Scala代码,有几个嵌套的条件和匹配级别,这将使用明确的返回值退出函数会更加清晰。

避免这些明确的退货声明有什么好处吗?

解决方法

返回可以通过抛出异常来实现,因此它可能在声明方法结果的标准方式上具有一定的开销。 (感谢Kim Stebel指出,这并不总是,也许不是经常的情况)。

另外,闭包的返回将从闭包定义的方法返回,而不是简单地从闭包本身返回。这使得它对于这一点很有用,并且从关闭返回结果是无用的。

以上的例子:

def find[T](seq: Seq[T],predicate: T => Boolean): Option[T] = {
  seq foreach { elem =>
    if (predicate(elem)) return Some(elem) // returns from find
  }
  None
}

如果你仍然不明白,elem => if(predicate(elem))return Some(elem)是应用一个实现Function1的匿名对象的方法,并将其作为参数传递给foreach。从中删除返回,它将不起作用。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读