List Buffer Prepend: error: value ++=: is not a member of Seq[Int]

List Buffer Prepend: error: value ++=: is not a member of Seq[Int]

我收到一个错误,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)

来自文档:

def ++=:(xs: TraversableOnce[A]): ListBuffer.this.type

http://www.scala-lang.org/api/2.11.5/index.html#scala.collection.mutable.ListBuffer

因为冒号表示函数是在右边的对象上调用的

尝试

Seq(4, 5) ++=: lb

在中缀位置使用时,以 : 结尾的方法是右结合的。
您可以使用 .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)