tdm*_*asy 4 scala scala-collections
在斯卡拉,
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
}
Run Code Online (Sandbox Code Playgroud)
为什么行
println(buffer += (2, 3))
Run Code Online (Sandbox Code Playgroud)
工作,但行
println(buffer += aTuple )
Run Code Online (Sandbox Code Playgroud)
不编译?
gou*_*ama 10
因为您没有添加a Tuple,所以+=使用两个参数调用该方法:
buffer += (3, 4)
// is equivalent here to
buffer.+=(3, 4)
Run Code Online (Sandbox Code Playgroud)
并且使用varargs和without 定义该方法,并将缓冲区的所有内容添加到缓冲区中:
def +=(elem: A): ArrayBuffer.this.type
def +=(elem1: A, elem2: A, elems: A*): ArrayBuffer.this.type
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1353 次 |
| 最近记录: |