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 ?
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With