将Array转换为ListBuffer的惯用法

Ham*_*amy 3 scala idiomatic type-conversion

我正在寻找比这更清洁的解决方案:

import scala.collection.mutable.ListBuffer

val y = Array(1,2,3,4)
val z = new ListBuffer[Int]()
y.foreach(elem => z += elem)
Run Code Online (Sandbox Code Playgroud)

Vla*_*eev 7

另一种方法是使用to转换方法:

import scala.collection.mutable.ListBuffer

val arr: Array[Int] = Array(1, 2, 3, 4)
val buf: ListBuffer[Int] = arr.to[ListBuffer]
Run Code Online (Sandbox Code Playgroud)

当然,在变量上输入注释是多余的,为了清楚起见,我添加了它们.

to它是非常通用的,它允许在任意集合之间进行转换(即,从任何东西TraversableCanBuildFrom在范围内具有适当实例的任何东西).


Mic*_*jac 5

怎么样:

val z = ListBuffer(y: _ *)
Run Code Online (Sandbox Code Playgroud)

ListBuffer.apply接受可变参数样式的元素序列。签名是apply[A](elems: A *): ListBuffer[A]为了将序列应用于这样的函数,我们使用语法: _ *