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 LazyList.flatten用法及代碼示例
- Scala LazyList.force用法及代碼示例
- Scala LazyList.runWith用法及代碼示例
- Scala LazyList.slice用法及代碼示例
- Scala LazyList.unzip用法及代碼示例
- Scala LazyList.inits用法及代碼示例
- Scala LazyList.sortBy用法及代碼示例
- Scala LazyList.mkString用法及代碼示例
- Scala LazyList.unzip3用法及代碼示例
- Scala LazyList.addString用法及代碼示例
- Scala LazyList.elementWise用法及代碼示例
- Scala LazyList.sortWith用法及代碼示例
- Scala LazyList.prepended用法及代碼示例
- Scala LazyList.lengthIs用法及代碼示例
- Scala LazyList.sizeIs用法及代碼示例
- Scala LazyList.permutations用法及代碼示例
- Scala LazyList.lazyZip用法及代碼示例
- Scala LazyList.appended用法及代碼示例
- Scala LazyList.groupMap用法及代碼示例
- Scala LazyList.applyOrElse用法及代碼示例
- Scala LazyList.groupBy用法及代碼示例
- Scala LazyList.transpose用法及代碼示例
- Scala LazyList.scanRight用法及代碼示例
- Scala LazyList.combinations用法及代碼示例
- Scala LazyList.groupMapReduce用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 LazyList.flatMap。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。