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

如何在列表中找到匹配的元素并将其映射为Scala API方法?

发布时间:2020-12-16 09:23:10 所属栏目:安全 来源:网络整理
导读:有没有做这两种方法来做以下的方法:find和map? val l = 0 to 3l.find(_ * 33 % 2 == 0).map(_ * 33) // returns Some(66) 解决方法 如何使用收集? // Returns List(66)List(1,2,3) collect { case i if (i * 33 % 2 == 0) = i * 33 } 然而,这将返回所有的
有没有做这两种方法来做以下的方法:find和map?

val l = 0 to 3
l.find(_ * 33 % 2 == 0).map(_ * 33) // returns Some(66)

解决方法

如何使用收集?

// Returns List(66)
List(1,2,3) collect { case i if (i * 33 % 2 == 0) => i * 33 }

然而,这将返回所有的比赛,而不只是第一个.

更好的答案是,基于Scala 2.9:

// Returns Some(66)
List(1,3) collectFirst { case i if (i * 33 % 2 == 0) => i * 33 }

解决方案建议在评论中附加一个头,以获得一个Scala 2.8版本是不是很有效率,我害怕.也许在这种情况下,我会坚持自己的代码.无论如何,为了确保它返回一个选项,你不应该调用head,而是headOption.

// Returns Some(66)
List(1,3) collect { case i if (i * 33 % 2 == 0) => i * 33 } headOption

(编辑:李大同)

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

    推荐文章
      热点阅读