如何以 Scala 方式执行此操作:从 Option[Seq[String]]
返回第一个元素作为 Some[String]
,如果它是 Some[ Seq[String]]
且至少有一个字符串,否则返回 None
最佳答案
headOption
在 Seq
上做你想做的,而在 Option
上的 flatMap
可以做剩下的:
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
带字符串。
关于scala - 如何以 Scala 方式执行此操作 : get the first element from Option[Seq[String]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18500811/