考虑以下几点:斯卡拉:Concatonate两个可选的情况[名单]
val l1 = Some(List(1))
val l2 = Some(List(2))
我想串联l1
和l2
让我得到一个List(1, 2)
或Nil
如果两个选项都等于None
。
我很乐意使用scalaz是否有一个优雅的解决方案出现。
考虑以下几点:斯卡拉:Concatonate两个可选的情况[名单]
val l1 = Some(List(1))
val l2 = Some(List(2))
我想串联l1
和l2
让我得到一个List(1, 2)
或Nil
如果两个选项都等于None
。
我很乐意使用scalaz是否有一个优雅的解决方案出现。
l1.getOrElse(Nil) ::: l2.getOrElse(Nil)
的是更简单,当您使用semigroup型类
import cats._ , cats.implicits._ , cats.instances._
scala> Option(List(3)) |+| Option(List(5))
res0: Option[List[Int]] = Some(List(3, 5))
scala> Option(List(3)) |+| None
res1: Option[List[Int]] = Some(List(3))
可以相信我没有想到! – rodoherty1