scala - 如何以 Scala 方式执行此操作 : get the first element from Option[Seq[String]]

标签 scala

如何以 Scala 方式执行此操作:从 Option[Seq[String]] 返回第一个元素作为 Some[String],如果它是 Some[ Seq[String]] 且至少有一个字符串,否则返回 None

最佳答案

headOptionSeq 上做你想做的,而在 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/

相关文章:

scala - 如何避免在 Scala 中使用 asInstanceOf

scala - 什么时候 Actor 不合适?

scala - Spark Scala 数据帧 : Merging multiple columns into single column

java - 如何在运行时从 java 程序编译并运行 scala 代码?

scala - 可以在scala中使用一会儿循环并产生 yield

scala - 在 Scala 2.8 中,如何向文件写入(追加)一行?我应该使用 Java 类(class)还是为此使用原生的 Scala 函数?

scala - 与 Scala 中的存在类型混淆

arrays - 如何从 Spark 中的数组 Column 中删除元素?

java - 你如何在 Play Framework scala 模板中使用 DTO?

scala - 在 2.8.x 中的 Scala 中管理灵活、类型化、不可变的数据结构