我想在ListBuffer中添加一个三位整数元组。直觉上,我的第一次尝试是代码片段1,根据编译器,它有语法错误。然后,我尝试了代码片段2和3,两者都可以使用。那么有人可以向我解释为什么代码片段1在语法上是错误的。
摘录1
import scala.collection.mutable.ListBuffer
val b : ListBuffer[(Int, Int,Int)] = ListBuffer()
b += (1,1,1)
摘录2
import scala.collection.mutable.ListBuffer
val b : ListBuffer[(Int, Int,Int)] = ListBuffer()
b += ((1,1,1))
摘录3
import scala.collection.mutable.ListBuffer
val b : ListBuffer[(Int, Int,Int)] = ListBuffer()
val i = (1,1,1)
b += i
答案 0 :(得分:26)
b += (1,1,1)
被解释为
b.+=(1,1,1)
看起来像是将三个参数传递给+
的函数调用添加另一对parens意味着它被解释为
b.+=((1,1,1))
正在通过预期的元组。
在
中单独声明参数val i = (1,1,1)
也没有那个解释问题所以也可以。