我创建一个这样的列表:
var multiList : List[MyObj] = Nil
要将对象附加到此列表,我使用:
multiList = multiList ::: List(MyObj)
这有效,但我不应该使用
multiList = multiList ::: MyObj
在这里我将一个对象附加到列表中,而在示例中(有效)它在语法上看起来好像我将一个新列表附加到一个列表中?
我创建一个这样的列表:
var multiList : List[MyObj] = Nil
要将对象附加到此列表,我使用:
multiList = multiList ::: List(MyObj)
这有效,但我不应该使用
multiList = multiList ::: MyObj
在这里我将一个对象附加到列表中,而在示例中(有效)它在语法上看起来好像我将一个新列表附加到一个列表中?
运算符的:::
意思是连接,而不是附加。有:+
元素附加。
该::
方法用于将内容“添加”到列表中。:::
运算符用于将一个列表添加到另一个列表。以::
冒号结尾,因此是“右结合”,可以解释如下
x :: y
// 将被翻译成
y.::(x)
因此,要将您的对象添加到一个空列表中,您可以这样做
MyObj :: 无
// 将被翻译成
无::(MyObj)
如果您想将对象列表添加到空列表中,您可以这样做
List(MyObj, MyObj) ::: 无
// 将被翻译成
Nil.:::(List(MyObj, MyObj))
如果您确实想追加,可以使用该:+
方法。然而,这对于不同类型的集合执行不同。有关性能的更多信息可以在这里找到:性能特征