scale的可变集合的+ =方法在幕后被转换为什么?
例如,如果我在可变队列上执行+ =,那相当于进行入队?同上 - =?
答案 0 :(得分:3)
scale的可变集合的+ =方法在幕后被转换为什么?
它没有被翻译成任何东西。它在给定对象上调用名为+=
的方法。
如果我在可变队列上做+ =,那相当于进行入队?
如果查看Queue.+=
和Queue.enqueue
1 的文档,除enqueue
可以接受多个参数外,它们是相同的。所以是的,可变队列上的+=
相当于enqueue
只有一个参数。
1 从文档引用:
def +=(elem : A) : Unit
在队列末尾插入一个元素。
参数
- elem - 要插入的元素
和
def enqueue(elems : A*) : Unit
将所有元素添加到队列中。
参数
- elems - 要添加的元素。
答案 1 :(得分:1)
+=
只是对+=
的常规方法调用。您可能正在使用中缀表示法编写它,如下所示:
intList += 5
这相当于:
intList.+=(5)
-=
上没有scala.collection.mutable.Queue
方法。
答案 2 :(得分:1)
根据source code,enqueue
实现为:
def enqueue(elems: A*): Unit = this ++= elems
由于dequeue
没有-=
方法,-=
代码更复杂且不等同于Queue
。