在Scala中,当我评估一个for
循环时,我会得到一个不可变的IndexedSeq
(具有类似数组的性能特征,如高效的随机访问):
scala> val s = for (i <- 0 to 9) yield math.random + i
s: scala.collection.immutable.IndexedSeq[Double] = Vector(0.6127056766832756, 1.7137598183155291, ...
for
循环中带有yield
,它总是返回IndexedSeq
吗?还是它也可以返回其他类型的集合类(例如LinearSeq
)?如果它可以返回其他类型,那么是什么决定了返回类型,如何影响它?
我正在使用Scala 2.8.0.RC3。