Scala 为什么list::element出错?
我刚接触scala,只是在空闲时间玩玩它,遇到了以下问题: 如果我有这个清单:Scala 为什么list::element出错?,scala,Scala,我刚接触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) 斯卡拉完全同意为什么我不能将一个元素附加到列表,但我可以将列表的所有元素附加到列表的末尾您的语法倒过来了: 5 :: list
val list = List(1,2,3,4)
然后说:
val newList = list :: 5
斯卡拉告诉我
error: value :: is not a member of Int
但如果我说:
val newList = list ::: List(5)
斯卡拉完全同意为什么我不能将一个元素附加到
列表
,但我可以将列表
的所有元素附加到列表的末尾
您的语法倒过来了:
5 :: list
这将在元素5
前面添加列表
在Scala中,以冒号(:
)结尾的运算符是右关联的。因此5::list
调用list
上的:
方法,并给出参数5
之所以list:::list(5)
有效,是因为它实际上是在list(5)
前面加了list
顺便说一句,
List
还分别具有用于prepend和append的操作符+:
和:+
。(但请记住,在列表
前面加上前缀是O(1),而在后面加上后缀是O(n)。ohhh好的,所以我实际上是说5::(列表)好的。这就解释了错误信息