【发布时间】:2011-09-27 10:46:27
【问题描述】:
::: 和 ++ 在 Scala 中连接列表有什么区别吗?
scala> List(1,2,3) ++ List(4,5)
res0: List[Int] = List(1, 2, 3, 4, 5)
scala> List(1,2,3) ::: List(4,5)
res1: List[Int] = List(1, 2, 3, 4, 5)
scala> res0 == res1
res2: Boolean = true
从the documentation 看来,++ 更通用,而::: 是List 特定的。提供后者是因为它用于其他函数式语言吗?
【问题讨论】:
-
另外,
:::是一个前缀运算符,就像所有以:开头的方法一样 -
答案几乎描述了 Scala 围绕列表和 Scala 中的运算符一致性(或缺乏后者)演变的方式。有点不幸的是,这么简单的事情有这么长的细节,以混淆和浪费任何 Scala 学习者的时间。我希望它会在 2.12 中趋于平稳。
标签: list scala concatenation