2017-08-24 10 views
0

flatMapの署名されていますGenTraversableOnceはどのようにflatMapメソッドで終了しますか?ここ

def flatMap[B, That](f: A => GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That 

it:Iterable[Option[T]]の場合はIterable[T]呼び出しに変換することができます。

it.flatMap(x => x) 

のでThatIterable[T]であるが、その後B何で、どのようx => x : (Option[T] => Option[T])はに対応しませんf ???

+0

[関連](https://www.scala-lang.org/blog/2017/05/30/tribulations-canbuildfrom.html)。私は、標準ライブラリを理解している人にこれを適切な答えに書き込むようにします。 –

答えて

1

ABGenTraversableOnceのサブタイプであるOptionからIterableへの暗黙的な変換は、ありT

で、Option[T]です。

+0

そして、それは何ですか? –

+0

'B =' D '、 'A''から' C''への暗黙の変換が存在するときは常に 'A => B'は' C => D'でOKです... –

+0

' '。 'flatMap(x => x)'は基本的に 'F [F]]を' F [A] 'に変換する' flatten'関数です。 –

関連する問題