2013-06-05 37 views

回答

49

使用to方法在斯卡拉2.10乱收类型之间进行转换:

scala> Array(1, 2, 3).toSeq 
res0: Seq[Int] = WrappedArray(1, 2, 3) 

scala> Array(1, 2, 3).to[collection.immutable.Seq] 
res1: scala.collection.immutable.Seq[Int] = Vector(1, 2, 3) 
+0

很好谢谢 –

+0

你的回答帮我,但为什么,这是为什么即使需要?我只使用不可变集合 - for-yield的结果怎么会需要这样一个.to? – akauppi

+2

我的朋友,伊万尤尔琴科澄清这一点:问题是,有三件事情: A)scala.collection.Seq B)scala.collection.immutable.Seq C)scala.collection.mutable.Seq B和C派生自A,所以如果我们有A,我们不能肯定地说它是可变的还是不可变的,这就是为什么显式转换(.toList或者其他)或者从一开始就将它们设置为不可变的原因 – akauppi