如何将 scala 中的序列 convert/wrap 转换为 Option[Seq] 以便如果列表为空,则 Option 为 None
How to convert/wrap a sequence in scala to an Option[Seq] so that if the list is empty, the Option is None
我可以用 if 语句来做到这一点,但可能有 "scala" 方法来做到这一点。
def notScalaConv(in: Seq[String]): Option[Seq[String]] = {
if (in.isEmpty)
None
else
Option(in)
}
你为什么不简单地做 val seqOpt = Option(yourSeq)
,这会给你 Option(Seq[String])
。
val nonEmpty = Seq("somevalue")
val empty = Seq()
val seqOpt = List(Option(empty), Option(nonEmpty)) map {
case seq if seq.get.isEmpty => None
case x => x
}
assert(seqOpt.head == None)
assert(seqOpt(1) == Option(nonEmpty))
您可以将 Seq
提升为 Option
,然后对其进行过滤。像这样:
def notScalaConv(in: Seq[String]): Option[Seq[String]] = {
Option(in).filter(_.nonEmpty)
}
我可以用 if 语句来做到这一点,但可能有 "scala" 方法来做到这一点。
def notScalaConv(in: Seq[String]): Option[Seq[String]] = {
if (in.isEmpty)
None
else
Option(in)
}
你为什么不简单地做 val seqOpt = Option(yourSeq)
,这会给你 Option(Seq[String])
。
val nonEmpty = Seq("somevalue")
val empty = Seq()
val seqOpt = List(Option(empty), Option(nonEmpty)) map {
case seq if seq.get.isEmpty => None
case x => x
}
assert(seqOpt.head == None)
assert(seqOpt(1) == Option(nonEmpty))
您可以将 Seq
提升为 Option
,然后对其进行过滤。像这样:
def notScalaConv(in: Seq[String]): Option[Seq[String]] = {
Option(in).filter(_.nonEmpty)
}