来自List
的 API 文档:
以相反的顺序将给定列表的元素添加到此列表的前面。
xs reverse_::: ys
等同于xs.reverse ::: ys
,但效率更高。
让我感到困惑的是为什么xs.reverse ::: ys
有效,即用空白替换下划线。
这是一种扩张吗?
当你做xs reverse_::: ys
时,你只是在调用一个名为reverse_:::
的函数。
当你做xs.reverse ::: ys
时,你首先在xs
上调用reverse
函数,然后调用:::
函数。
xs.reverse ::: ys
将循环访问xs
中的元素两次。首先是反转xs
,然后是第二次将reverse
的结果附加到ys
。reverse_:::
函数将通过xs
的单次迭代来执行这两个操作。