當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Scala IterableOnceOps.flatMap用法及代碼示例


flatMap 方法(或屬性)屬於 scala.collection.IterableOnceOps 特性(trait),其相關用法說明如下。

用法:

def flatMap[B](f: A => IterableOnce[B]): CC[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)

類型參數:

B

返回集合的元素類型。

值參數:

f

應用於每個元素的函數。

返回:

通過將給定的 collection-valued 函數 f 應用於此集合的每個元素並連接結果而產生的新集合.

源碼:

IterableOnce.scala

相關用法


注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 IterableOnceOps.flatMap。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。