Eas*_*sun 26
scala> val seq = 1::2::3::Nil
seq: List[Int] = List(1, 2, 3)
scala> seq.toBuffer
res2: scala.collection.mutable.Buffer[Int] = ArrayBuffer(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
编辑在Scala 2.1x之后.to[Coll],TraversableLike中定义了一个方法,可以使用如下:
scala> import collection.mutable
import collection.mutable
scala> seq.to[mutable.ArrayBuffer]
res1: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(1, 2, 3)
scala> seq.to[mutable.Set]
res2: scala.collection.mutable.Set[Int] = Set(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
Phi*_*ppe 12
这将有效:
ArrayBuffer(mySeq : _*)
Run Code Online (Sandbox Code Playgroud)
一些解释:这使用ArrayBuffer伴随对象中的apply方法.该方法的签名是
def apply [A] (elems: A*): ArrayBuffer[A]
Run Code Online (Sandbox Code Playgroud)
这意味着它需要可变数量的参数.例如:
ArrayBuffer(1, 2, 3, 4, 5, 6, 7, 8)
Run Code Online (Sandbox Code Playgroud)
也是一个有效的电话.ascription:_*向编译器指示应使用Seq代替可变数量的参数(请参阅Scala参考中的第4.6.2节).
| 归档时间: |
|
| 查看次数: |
14758 次 |
| 最近记录: |