3

Scala ドキュメントによると、フラット化 API はリストのリストをフラット化し、リストのリストでのみ呼び出すことができます。

では、なぜ次のように呼び出すことができるのでしょうか?

List(Some("Tony"), None).flatten  
4

1 に答える 1

10

ScalaDoc API は、[use case]-- メソッド シグネチャの単純化された表現を示しています。をクリックするFull signatureと、完全な署名に展開されます。

Full Signature
def flatten[B](implicit asTraversable: (A) ⇒ GenTraversableOnce[B]): List[B]

リスト要素タイプ(あなたの場合は) から他のタイプのトラバーサブルへflattenの暗黙的な変換がある限り、リストまたは他のほとんどのコレクションで呼び出すことができます。AOption[String]

任意Optionの型を暗黙的にに変換できますGenTraversableOnce--Some単一の要素コレクションおよびNone空のコレクションとして機能します。これは、 を呼び出しflattenList[Option[String]]を取得できることを意味しますList[String]

于 2013-04-13T15:27:46.380 に答える