当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala LazyList.flatMap用法及代码示例


flatMap 方法(或属性)属于collection.immutable.LazyList类(class),其相关用法说明如下。

用法:

override def flatMap[B](f: A => IterableOnce[B]): LazyList[B]

通过将函数应用于此惰性列表的所有元素并使用结果集合的元素来构建一个新的惰性列表。

例如:

def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")

结果集合的类型由惰性列表的静态类型引导。这有时可能会导致意想不到的结果。例如:

// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)

// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)

// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)

// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)

这种方法保留了懒惰;元素仅根据需要单独评估。

定义类

源码:

LazyList.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 LazyList.flatMap。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。