【发布时间】:2012-10-19 06:55:44
【问题描述】:
在 Coursera 上的 Scala 课程之后,Martin Odersky 展示了一个示例代码:
1 to 5 map ( i => i*i )
他说Range 被转换为Vector,因为它们共享相同的接口 (IndexedSeq),结果无法表示为Range
(在它的示例中更清楚,因为他生成了一对不能表示为 Range)。
我不确定是否理解,因为我认为他之前说过,在 for 表达式中,第一个生成器将确定将产生的元素类型,这似乎并不总是正确的,至少对于 Range 而言。
我不确定为什么输出是Vector,因为Vector 可能不是唯一可以表示上面计算结果的另一种实现。
有人可以帮我理解这部分吗?
【问题讨论】: