Appending tuple to a buffer in Scala

scala, scala-collections

Solution

Because you are not adding a `Tuple`, you are calling the `+=` method with two parameters:

buffer += (3, 4)
// is equivalent here to
buffer.+=(3, 4)

And that method is defined both with varargs and without, and adds to the buffer everything it is given:

def +=(elem: A): ArrayBuffer.this.type 
def +=(elem1: A, elem2: A, elems: A*): ArrayBuffer.this.type 

Problem

In Scala, ``` test("Appending a tuple to a Buffer"){ val buffer = ArrayBuffer[Int]() val aTuple = (2, 3) println(buffer += (2, 3)) // Result : ArrayBuffer(2, 3) println(buffer += aTuple ) // doesn't compile } ``` Why does line ``` println(buffer += (2, 3)) ``` work, but line ``` println(buffer += aTuple ) ``` not compile ?

Original source