0

私はこのようなリストを作成します:

var multiList : List[MyObj] = Nil 

このリストにオブジェクトを追加するには、次を使用します。

multiList = multiList ::: List(MyObj)

これは機能しますが、使用しないでください

multiList = multiList ::: MyObj

ここでは List にオブジェクトを追加していますが、例 (動作) では、新しい List を List に追加しているように構文的に見えますか?

4

2 に答える 2

3

演算子は、:::追加ではなく連結を意味します。:+element-appendがあります。

于 2013-02-25T14:13:40.477 に答える
1

この::メソッドは、リストに要素を「追加」するために使用されます。:::演算子は、あるリストを別のリストの先頭に追加するために使用されます。は::コロンで終わるため、次のように説明できる「右結合」です。

x::y

// に変換されます

y.::(x)

したがって、オブジェクトを空のリストに追加するには、次のことができます

MyObj :: Nil

// に変換されます

なし::(MyObj)

オブジェクトのリストを空のリストに追加したい場合は、次のことができます

List(MyObj, MyObj) ::: なし

// に変換されます

Nil.:::(List(MyObj, MyObj))

追加したい場合は、:+メソッドを使用できます。ただし、これは異なるタイプのコレクションでは異なる方法で実行されます。パフォーマンスの詳細については、こちらを参照してください:パフォーマンス特性

于 2013-02-25T14:16:42.833 に答える