首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >collect vs collectFirst -为什么返回值的类型不同- Scala

问collect vs collectFirst -为什么返回值的类型不同- Scala
EN

Stack Overflow用户
提问于 2016-11-24 04:21:48
回答 1查看 7.6K关注 0票数 3

问题是确认我是否正确理解了Option的用法。

我注意到collect方法返回一个列表,而collectFirst返回一个选项。是因为collect可以返回多个值,还是没有返回值(空列表表示没有返回值)。另一方面,collectFirst返回单个值(或不返回任何值),因此它使用选项的次数更多,因为我们永远不会返回'list‘

EN

回答 1

Stack Overflow用户

发布于 2016-11-24 04:31:29

你是对的:

代码语言:javascript
复制
scala> (1 to 5).collect { case i if i % 2 == 0 => "*" * i }
res: scala.collection.immutable.IndexedSeq[String] = Vector(**, ****)

scala> (1 to 5).collectFirst { case i if i % 2 == 0 => "*" * i }
res: Option[String] = Some(**)

scala> (1 to 5).collect { case i if i > 10 == 0 => "*" * i }
res: scala.collection.immutable.IndexedSeq[String] = Vector()

scala> (1 to 5).collectFirst { case i if i > 10 == 0 => "*" * i }
res: Option[String] = None
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40773529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档