Scala 的 Map 和 Set 定义了一个+
运算符,该运算符返回数据结构的副本,并附加一个元素。的等价运算符Seq
表示为:+
。
这种不一致有什么原因吗?
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 中,如果方法以 :它以相反的顺序应用(不是 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 这样的卷须有多长。