【发布时间】:2011-11-13 05:13:09
【问题描述】:
所以,在阅读“不耐烦的 Scala”时,我发现自己在想:你可以使用没有序列的 Scala for 循环吗?
例如,书中有一个练习要求您构建一个计数器对象,该对象不能超过 Integer.MAX_VALUE。为了测试我的解决方案,我编写了以下代码:
var c = new Counter
for( i <- 0 to Integer.MAX_VALUE ) c.increment()
这会引发错误:序列不能包含超过 Int.MaxValue 的元素。 在我看来,这意味着 Scala 首先分配和填充一个序列对象,其值为 0 到 Integer.MaxValue,然后对该序列对象执行 foreach 循环。
我意识到我可以这样做:
var c = new Counter
while(c.value < Integer.MAX_VALUE ) c.increment()
但是有什么方法可以用 for 语句来做一个传统的 C 风格的 for 循环呢?
【问题讨论】:
标签: scala for-loop while-loop sequence