Scala 的 Map 和 Set 定义了一个 +
运算符返回数据结构的副本,其中附加了一个元素。 Seq
的等效运算符表示 :+
.
这种不一致有什么原因吗?
最佳答案
Map 和 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)
不要被参数的顺序弄糊涂,在 Scala 中,如果方法以:it get's applied in reverse order 结尾(不是 a.method(b) 而是 b.method(a))
关于scala - 为什么(复制)附加到 Scala 中的 Seq 被定义为 :+ and not just + as in Set and Map?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124834/