将元素添加到选项[列表[A]]

时间:2016-12-11 17:44:10

标签: scala

我想知道如何将类型A的变量x附加到Option [List [A]]。

val opt = Option[List[A]] which is initially None. 

现在如何将x添加到A的列表?

是吗:

opt.get ++ x

是否使用get?

更改了opt值

希望我的问题很清楚

2 个答案:

答案 0 :(得分:5)

  

是否使用get?

更改了opt值

不,List[A]是不可变的,在使用opt.get ++ List(x)的情况下,您可以获得新的列表。我不建议直接使用.get

相反,如果列表为map,则可以使用orElseNone

val result: Option[List[A]] = opt.map(list => x +: list).orElse(Option(List(x)))

另一种方法可以使用Option[A].fold

val result: Seq[Int] = opt.fold(List(x))(list => x +: list)

如果您想要添加元素提取列表,请使用getOrElse

val result: Seq[Int] = opt.map(list => x +: list).getOrElse(List(10))

答案 1 :(得分:0)

我实际上是通过

解决了这个问题
val result = Option(opt.get ++ x )