拼合功能

时间:2013-04-13 15:19:23

标签: scala

Scala文档说flatten api会压缩列表列表,只能在列表列表中调用它。

为什么可以在下面调用它?

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

1 个答案:

答案 0 :(得分:10)

ScalaDoc API显示[use case] - 方法签名的简化表示。 如果您点击Full signature,它将展开为完整的签名:

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

只要列表元素类型flatten存在隐式转换(在您的情况下为A),您就可以在列表或大多数其他集合上调用Option[String] )到任何其他类型的可遍历。

任何Option类型都可以隐式转换为GenTraversableOnce - Some作为单个元素集合,None作为空集合。 这意味着您可以致电flatten上的List[Option[String]]获取List[String]