对不起新手的问题,但我在Scala找不到这个的简写.
val s1 = List(8, 9, 10)
val s2 = List(7, 6, 5)
val s12 = s2.foldLeft(s1)((acc, x) => x :: acc)
assert(s12 === List(5, 6, 7, 8, 9, 10))
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个操作符来达到同样的效果?
您可以反转第二个列表并将结果添加到第一个列表中
val s12 = s2.reverse ::: s1
Run Code Online (Sandbox Code Playgroud)
有关可用方法的其他文档,请参阅scala.collection.immutable.ListAPIdocs
例如 :::
在此列表前添加给定列表的元素.
顺便:::使用这样的方式(中缀符号 - 没有点)是右关联的(这意味着该方法将在正确的对象上调用 - s1在这种情况下).
此外,当:::使用点表示法调用时,它将在点的左侧对象上调用,因此在这种情况下s2.reverse.:::(s1)将导致List(8, 9, 10, 5, 6, 7)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |