Scala:向序列添加项或有条件地合并序列

abx*_*x78 5 scala seq scala-collections

我需要Seq根据条件添加项目.

我唯一能做的就是:

if(condition){
    part1 ++ part2 ++ Seq(newItem)
}
else {
  part1 ++ part2
}
Run Code Online (Sandbox Code Playgroud)

part1并且part2Seq[String].它有效,但有很多重复的代码.有什么方法可以做得更好吗?谢谢

4e6*_*4e6 6

在你的情况下,第三部分可以是Option:

val part3 = if (condition) Some(newItem) else None
part1 ++ part2 ++ part3
Run Code Online (Sandbox Code Playgroud)

例:

scala> Seq(1,2,3) ++ Seq(4,5) ++ Option(6)
res0: Seq[Int] = List(1, 2, 3, 4, 5, 6)
Run Code Online (Sandbox Code Playgroud)

这里隐式转换Option.option2Iterable就是这样做的.