Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 为什么list::element出错?_Scala - Fatal编程技术网

Scala 为什么list::element出错?

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

我刚接触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
这将在元素
5
前面添加
列表

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

之所以
list:::list(5)
有效,是因为它实际上是在
list(5)
前面加了
list


顺便说一句,
List
还分别具有用于prepend和append的操作符
+:
:+
。(但请记住,在
列表
前面加上前缀是O(1),而在后面加上后缀是O(n)。

ohhh好的,所以我实际上是说5::(列表)好的。这就解释了错误信息