ScalaのMapとSetは+
、単一の要素が追加されたデータ構造のコピーを返す演算子を定義します。の同等の演算子Seq
はで示され:+
ます。
この不一致の理由はありますか?
ScalaのMapとSetは+
、単一の要素が追加されたデータ構造のコピーを返す演算子を定義します。の同等の演算子Seq
はで示され:+
ます。
この不一致の理由はありますか?
Map and Setには、順序付けされていないため、先頭に+:
追加()または追加( )するという概念はありません。:+
どちらを使用するか(追加または追加)を指定するために、:
が追加されました。
scala> Seq(1,2,3):+4
res0: Seq[Int] = List(1, 2, 3, 4)
scala> 1+:Seq(2,3,4)
res1: Seq[Int] = List(1, 2, 3, 4)
メソッドが:で終わる場合、スカラでは引数の順序に混乱しないでください。逆の順序で適用されます(a.method(b)ではなくb.method(a))
参考までに、受け入れられた答えはまったく理由ではありません。という訳だ。
% scala27
Welcome to Scala version 2.7.7.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_06).
scala> Set(1, 2, 3) + " is the answer"
res0: java.lang.String = Set(1, 2, 3) is the answer
scala> List(1, 2, 3) + " is the answer"
warning: there were deprecation warnings; re-run with -deprecation for details
res1: List[Any] = List(1, 2, 3, is the answer)
any2stringaddのようなものの巻きひげの長さを過小評価しないでください。