在选项[Seq [T]]上使用地图

时间:2014-03-27 16:01:33

标签: scala

我有一个选项[Seq [T]],当然可以包含Seq [T]或者可能包含无。

我已被警告不要使用.get但是如果Option为None,我如何使用map返回预期填充的Seq [T]或空List()。

我已经设法使用模式匹配,想知道是否有办法使用map来实现相同的目标。谢谢!

val maybeProducts:Option[Seq[Product]] = {....}

val products:Seq[Product] = {
  maybeProducts match {
    case Some(ps) => ps
    case None     => List()
  }
}

3 个答案:

答案 0 :(得分:4)

您可以使用getOrElse

maybeProducts.getOrElse(List())

答案 1 :(得分:3)

val products: Seq[Product] = maybeProducts.getOrElse(List())

答案 2 :(得分:0)

记录;另一个解决方案是将选项转换为列表然后展平它们:

maybeProducts.toList.flatten