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

最好的scala成语,用于查找和返回

发布时间:2020-12-16 19:11:20 所属栏目:安全 来源:网络整理
导读:这是我经常遇到的事情,但我不知道这种优雅的做法.我有一个Foo对象的集合. Foo有一个方法bar()可以返回null或Bar对象.我想扫描集合,调用每个对象的bar()方法,并在第一个返回实际引用时停止并从扫描返回该引用. 明显: foos.find(_.bar!= null).bar 诀窍,但两
这是我经常遇到的事情,但我不知道这种优雅的做法.我有一个Foo对象的集合. Foo有一个方法bar()可以返回null或Bar对象.我想扫描集合,调用每个对象的bar()方法,并在第一个返回实际引用时停止并从扫描返回该引用.

明显:

foos.find(_.bar!= null).bar

诀窍,但两次调用#bar.

解决方法

您可以使用迭代器(它在懒惰中计算 – 在2.7中称为元素)与任何Iterable一起使用.试试这个:

case class Foo(i: Int) {
  def bar = {
    println("Calling bar from Foo("+i+")")
    (if ((i%4)==0) "bar says "+i else null)
  }
}
val foos = List(Foo(1),Foo(2),Foo(3),Foo(4),Foo(5),Foo(6))
foos.iterator.map(_.bar).find(_!=null)

(编辑:李大同)

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

    推荐文章
      热点阅读