如何将List转换为ListBuffer?

Dan*_*Dan 23 scala list listbuffer

有没有办法有效地做到这一点,也许通过toBuffer或方法?我真正的问题是我正在构建一个解析器列表,如下所示:

lazy val nodes: Parser[List[Node]] = phrase(( nodeA | nodeB | nodeC).*)
Run Code Online (Sandbox Code Playgroud)

但是在构建它之后,我希望它成为缓冲区 - 我只是不确定如何直接从解析器构建缓冲区.

Rég*_*les 45

to 确实有诀窍,使用起来非常简单:

scala> val l = List(1,2,3)
l: List[Int] = List(1, 2, 3)
scala> l.to[ListBuffer]
res1: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

适用于scala 2.10.x.

对于scala 2.9.x,你可以这样做:

scala> ListBuffer.empty ++= l
res1: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

  • 对于“Scala 2.13”:“List(1,2,3).to(collection.mutable.ListBuffer)”(需要简单的括号)。 (3认同)