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 メソッドが定義されたのでしょうか? クライアント コードはいつそれを呼び出すのでしょうか?
編集
パターンマッチング用のエクストラクタもありますが、::具体的な方法が気になります。