我收到的错误是ListBuffer没有方法++ =:用于追加。甚至想过,这是在文档中。
scala> val lb = new ListBuffer[Int]
lb: scala.collection.mutable.ListBuffer[Int] = ListBuffer()
scala> lb ++= Seq(1,2,3)
res20: lb.type = ListBuffer(1, 2, 3)
scala> lb ++=: Seq(4,5)
<console>:10: error: value ++=: is not a member of Seq[Int]
lb ++=: Seq(4,5)
来自doc:
def ++=:(xs: TraversableOnce[A]): ListBuffer.this.type
http://www.scala-lang.org/api/2.11.5/index.html#scala.collection.mutable.ListBuffer
答案 0 :(得分:4)
因为冒号意味着在右边的对象上调用该函数
试
Seq(4, 5) ++=: lb
答案 1 :(得分:3)
在中缀位置使用时,以:
结尾的方法是右关联的
您可以使用lb
在.
上调用方法,也可以反转参数:
scala> lb.++=:(Seq(4,5))
res3: lb.type = ListBuffer(4, 5, 1, 2, 3)
scala> Seq(7,6,8) ++=: lb
res4: lb.type = ListBuffer(7, 6, 8, 4, 5, 1, 2, 3)