Когда я оцениваю for
в Scala, я получаю неизменяемый 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.