0

我是 scala 的新手,只是在空闲时间玩弄它并遇到了这个问题:

如果我有这个清单:

 val list = List(1,2,3,4)

然后说:

 val newList = list :: 5

斯卡拉告诉我

 error: value :: is not a member of Int

但如果我说:

 val newList = list ::: List(5)

scala 完全没问题。为什么我不能将元素附加到 a List,但我可以将 a 的所有元素附加到 aList的末尾List

4

1 回答 1

7

你有向后的语法:

5 :: list

这会将元素5添加到list.

在 Scala 中,以冒号 ( :) 结尾的运算符是右结合的。所以5 :: list调用::方法list并给出参数5

有效的原因list ::: List(5)是它实际上是listList(5).

顺便说一下,List也有运算符+::+for prepend 和 append,分别。(但请记住,附加到 aList是 O(1),而附加是 O(n)。)

于 2012-05-19T16:48:53.413 回答