列表缓冲区前置:错误:值++ =:不是Seq [Int]的成员

时间:2015-08-01 19:52:36

标签: scala scala-collections

我收到的错误是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

2 个答案:

答案 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)