Документы 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]
.