问题是确认我是否正确理解了Option的用法。
我注意到collect方法返回一个列表,而collectFirst返回一个选项。是因为collect可以返回多个值,还是没有返回值(空列表表示没有返回值)。另一方面,collectFirst返回单个值(或不返回任何值),因此它使用选项的次数更多,因为我们永远不会返回'list‘
发布于 2016-11-24 04:31:29
你是对的:
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] = Nonehttps://stackoverflow.com/questions/40773529
复制相似问题