List
(不変の) リストの前に要素を追加するために指定された 2 つのメソッドがあります。
+:
(実装Seq.+:
)、および::
( でのみ定義List
)
+:
技術的には、より一般的な型シグネチャを持っています—</p>
def +:[B >: A, That](elem: B)(implicit bf: CanBuildFrom[List[A], B, That]): That
def ::[B >: A](x: B): List[B]
—しかし、ドキュメントメッセージによれば単に である必要があるという暗黙的なものを無視するThat
とList[B]
、署名は同等です。
List.+:
とはどう違いList.::
ますか?それらが実際に同一である場合+:
、具体的な実装に依存することを避けることが好ましいと思いますList
。しかし、なぜ別の public メソッドが定義されたのでしょうか? クライアント コードはいつそれを呼び出すのでしょうか?
編集
パターンマッチング用のエクストラクタもありますが、::
具体的な方法が気になります。