oxb*_*kes 5 scala scala-collections
也许我正在咆哮错误的树(再次),但如果通常的做法是将一个属性输入为a scala.collection.immutable.Set[A],那么你将如何创建其中一个给定的scala.Iterable[A]?例如:
class ScalaClass {
private var s: scala.collection.immutable.Set[String]
def init(): Unit = {
val i = new scala.collection.mutable.HashSet[String]
//ADD SOME STUFF TO i
s = scala.collection.immutable.Set(i) //DOESN'T WORK
s = scala.collection.immutable.Set(i toSeq : _ *) //THIS WORKS
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么有必要通过a创建不可变集Seq(或者如果不是,那么我该怎么做)?
基本上是因为您正在通过 Set 的伴随对象中应用的“规范工厂方法”创建不可变的 Set,该对象采用序列或“varargs”(如 Set(a,b,c) 中)。请参阅: http:
//scala-tools.org/scaladocs/scala-library/2.7.1/scala/collection/immutable/Set$object.html
我认为标准库中没有另一个可以做到这一点。