Scala 文档说 flatten api 将列表列表展平,并且只能在列表列表上调用。
那么为什么可以在下面调用它呢?
List(Some("Tony"), None).flatten
Scala 文档说 flatten api 将列表列表展平,并且只能在列表列表上调用。
那么为什么可以在下面调用它呢?
List(Some("Tony"), None).flatten
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]
.