如果我想将Option
(应该有一个)的值添加到列表中,是否有比以下更好的方法:
val x = Some(42)
val xs = List(1,2,3)
val xs2 = x match {
case None => xs
case Some(x2) => x :: xs
}
我知道我可以像这样使用++
运算符Iterable
:
val xs2 = (x ++ xs).toList
但是,这种显式转换会List
导致整个列表被扫描和复制吗?
您可以使用++:
返回List
而不是Iterable
(跳过.toList
呼叫):
scala> val x = Some(42)
x: Some[Int] = Some(42)
scala> val xs = List(1,2,3)
xs: List[Int] = List(1, 2, 3)
scala> x ++: xs
res4: List[Int] = List(42, 1, 2, 3)
scala> val x = None
x: None.type = None
scala> x ++: xs
res5: List[Int] = List(1, 2, 3)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句