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

首先scala返回列表中的某些

发布时间:2020-12-16 09:10:37 所属栏目:安全 来源:网络整理
导读:我有一个列表l:列表[T1],当前我做以下操作: myfun : T1 - Option[T2]val x: Option[T2] = l.map{ myfun(l) }.flatten.find(_=true) myfun函数返回None或Some,flatten抛出所有的None,并返回列表的第一个元素,如果有的话. 这对我来说似乎有点黑客.我认为可能
我有一个列表l:列表[T1],当前我做以下操作:

myfun : T1 -> Option[T2]
val x: Option[T2] = l.map{ myfun(l) }.flatten.find(_=>true)

myfun函数返回None或Some,flatten抛出所有的None,并返回列表的第一个元素,如果有的话.

这对我来说似乎有点黑客.我认为可能存在一些理解或类似的东西,这样做会浪费更多或更聪明.
例如:如果myfun在列表l的地图中返回任何一个,我不需要任何后续的答案.

解决方法

怎么样:

l.toStream flatMap (myfun andThen (_.toList)) headOption

流是懒惰的,所以它不会提前映射一切,但它也不会重映射.而不是平铺事物,将Option转换为List,以便可以使用flatMap.

(编辑:李大同)

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

    推荐文章
      热点阅读