Scala的+ =可变集合的方法

时间:2016-08-01 17:07:00

标签: scala collections queue

scale的可变集合的+ =方法在幕后被转换为什么?

例如,如果我在可变队列上执行+ =,那相当于进行入队?同上 - =?

3 个答案:

答案 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 codeenqueue实现为:

def enqueue(elems: A*): Unit = this ++= elems

由于dequeue没有-=方法,-=代码更复杂且不等同于Queue