首先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,并返回列表的第一个元素,如果有的话. 这对我来说似乎有点黑客.我认为可能存在一些理解或类似的东西,这样做会浪费更多或更聪明. 解决方法
怎么样:
l.toStream flatMap (myfun andThen (_.toList)) headOption 流是懒惰的,所以它不会提前映射一切,但它也不会重映射.而不是平铺事物,将Option转换为List,以便可以使用flatMap. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |