我创建了一个像这样的List:
var multiList : List[MyObj] = Nil
要将对象附加到此列表,我使用:
multiList = multiList ::: List(MyObj)
这可行,但我不应该使用
multiList = multiList ::: MyObj
就像在这里我将一个对象附加到List中,在示例中(有效)它在语法上看起来就好像我将新的List附加到List一样?
答案 0 :(得分:3)
:::
运算符意味着连接,而不是追加。元素附加有:+
。
答案 1 :(得分:1)
::
方法用于将前缀“前置”到列表中。 :::
运算符用于将一个列表添加到另一个列表。 ::
以冒号结束,因此是“右关联”,可以解释如下
x :: y
//将被翻译为
Y::( x)的
因此,要将对象添加到空列表中,您可以执行
MyObj :: Nil
//将被翻译为
无::( MyObj中)
如果要将对象列表添加到空列表中,可以执行
List(MyObj,MyObj)::: Nil
//将被翻译为
Nil。:: :( List(MyObj,MyObj))
如果您确实想要追加,可以使用:+
方法。然而,这对于不同类型的集合执行不同。有关性能的更多信息,请访问:Performance Characteristics