我很困惑。在TraversableLike
,有一個功能flatMap
與簽名是選項GenTraversableOnce?
flatMap[B](f: (A) ⇒ GenTraversableOnce[B]): Iterable[B]
不過,我可以使用這種方式
scala> Iterable(1,2,3,4,5).flatMap{i=>if (i%2==0) {None} else {Some(i)}}
res1: Iterable[Int] = List(1, 3, 5)
爲什麼這可能嗎? Option
如何轉換爲GenTraversableOnce
?它似乎不是一個子類...
「這很容易在REPL中測試」[Function [Some [Int],GenTraversableOnce [Int]]] -__-簡單,是的,但是這是一個非常多的方括號被稱爲「簡單」imho。 – 2012-07-11 10:34:04
大答案,由於 – 2012-07-11 10:34:43
丹:階>進口scala.collection.GenTraversableOnce 進口scala.collection.GenTraversableOnce 階>型OptionToTraversableConversion [X] =函數[選項[X],GenTraversableOnce [X]] 定義類型別名OptionToTraversableConversion scala>隱式[OptionToTraversableConversion [Int]] res3:Option [Int] => scala.collection.GenTraversableOnce [Int] = –
Edmondo1984
2012-07-11 15:15:35