5

可变 Set有一个方法,def +=(elem1: A, elem2: A, elems: A*): Set.this.type但我可以用一个参数调用这个方法:

val s = scala.collection.mutable.Set(1, 2)
s += 4

实际调用的是什么方法?+=单个参数似乎没有重载。上述方法签名的意图是什么?

4

1 回答 1

9

好吧,这里有一点调查:

scala> val s = scala.collection.mutable.Set(1,2)
s: scala.collection.mutable.Set[Int] = Set(1, 2)

scala> s += 4
res0: s.type = Set(1, 2, 4)

scala> s +=
<console>:9: error: missing arguments for method += in trait SetLike;
follow this method with `_' if you want to treat it as a partially applied funct
ion
              s +=
                ^

哦,好的,让我们找到特征SetLike文档

abstract def +=(elem: A): SetLike.this.type

Adds a single element to the set.

现在很明显,它是mutable.SetLiketrait 中抽象方法的实现。

于 2013-09-19T14:28:02.347 回答