我有一个Iterator[Option[T]]
和我想的Iterator[T]
那些Option
S其中T
isDefined
.必须有一个比这更好的方法:
it filter { _ isDefined} map { _ get }
我原本以为在一个结构中它是可能的......有人有什么想法吗?
如果it
是的话Iterable
val it:Iterable[Option[T]] = ... it.flatMap( x => x ) //returns an Iterable[T]
如果it
是的话Iterator
val it:Iterator[Option[T]] = ... it.flatMap( x => x elements ) //returns an Iterator[T] it.flatMap( _ elements) //equivalent
在较新的版本中,现在可以:
val it: Iterator[Option[T]] = ... val flatIt = it.flatten
这对我有用(Scala 2.8):
it.collect {case Some(s) => s}