如何在列表中找到匹配的元素并将其映射为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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |