为什么`xs reverse _ ::: ys`有效?

时间:2018-05-18 10:50:08

标签: scala

来自List的API文档:

  

在此列表前面以相反的顺序添加给定列表的元素。 xs reverse_::: ys相当于xs.reverse ::: ys,但效率更高。

让我感到困惑的是为什么xs.reverse ::: ys有效,即用空格替换下划线。

这是一种扩张吗?

1 个答案:

答案 0 :(得分:6)

执行xs reverse_::: ys时,您只是调用名为reverse_:::的函数。

当您执行xs.reverse ::: ys时,首先拨打reverse上的xs功能,然后拨打:::功能。

xs.reverse ::: ys将遍历xs中的元素两次。首先撤消xs,然后第二次将结果reverse追加到ysreverse_:::函数将通过xs上的单次迭代执行两个操作。