Как сделать это в Scala образом: возвращает первый элемент в Some[String]
из Option[Seq[String]]
, если это Some[Seq[String]]
и имеет минимум одну строку, в противном случае вернуться None
Как сделать это в Scala образом: получить первый элемент из опции [Seq [String]]
1
A
ответ
7
headOption
делает то, что вы хотите на Seq
и flatMap
на Option
может сделать все остальное:
def first[A](maybe: Option[Seq[A]]): Option[A] = maybe.flatMap(_.headOption)
Это, по существу, такой же, как в следующем, но более кратким и идиоматических:
def first[A](maybe: Option[Seq[A]]): Option[A] = maybe match {
case Some(xs) => xs.headOption
case None => None
}
Обратите внимание, что обе версии являются немного более общий характер, чем то, что вы просили, но вы можете оставить параметр типа и заменить A
с String
, если вы хотите, чтобы работать со строками.
+0
Прохладный. Не знал headOption. – NSF
Смежные вопросы
- 1. Добавить элемент в Seq [String] в Scala
- 2. Как создать Scala Seq [String]() из nashorn?
- 3. Как сделать фильтр на Seq [Array [String]] в Scala?
- 4. Scala: Option [Seq [String]] vs Seq [Option [String]]?
- 5. Scala. Получить первый элемент списка
- 6. Как получить Array [Seq [String]] из DataFrame?
- 7. Преобразование Seq [T] в опции [Seq [Т]]
- 8. Scala проверить, если будущее [Seq [String]] IsEmpty
- 9. Scala scopt ошибка с Seq [String]
- 10. Scala: удалить первый столбец (первый элемент в каждой строке)
- 11. Scala - Свести Seq, содержащий Seq
- 12. Как это сделать в Scala?
- 13. Передача Seq [String] в суперкласс
- 14. Как я могу получить первый элемент K в scala Array?
- 15. Как добавить элемент в конец seq в scala?
- 16. как получить первый элемент из списка Tupled
- 17. Scala Seq преобразования пары
- 18. Форматирование с помощью опции [String] в Scala
- 19. Сравнение двух Seq в Scala
- 20. Convert Future [Seq [(String, String)]] to Future [Seq [(String)]]
- 21. Получить первый элемент отфильтрованного списка
- 22. scala .seq vs .toSeq
- 23. R string vector seq
- 24. Scala объединить Seq меток времени
- 25. Как получить первый элемент из вспомогательного массива
- 26. Сравнение Scala Seq
- 27. Как получить первый элемент CollectionViewSource?
- 28. jsoup: как получить первый элемент?
- 29. От seq до _ * в Scala
- 30. Как получить n-й элемент Seq?
В вашем приложении какая разница между 'None' и пустым' Seq() '? Если их нет, подумайте о том, чтобы полностью отбросить «Вариант». – cheeken