Kotlin编程实战:创建优雅、富于表现力和高性能的JVM与Android应用程序
上QQ阅读APP看书,第一时间看更新

4.1.2 正向迭代

一旦创建了一个范围,就可以使用for (x in ..)语法对其进行遍历。让我们遍历1到5范围内的值。

这样不仅语法优雅,而且安全。尽管没有明确指出,你可能已经猜到了变量i是val而不是var。也就是说,不能在循环中改变变量i。当然,变量i的作用域是有限的,这在循环外是看不见的。

同样,我们可以遍历一系列字符:

一切进行得很顺利,但是从"hell"到"help"的迭代会遇到问题,就像下面这样:

失败的原因是,虽然像IntRange和CharRange这样的类有iterator()函数/运算符,而它们的基类ClosedRange<T>没有。但是内心勇敢的程序员不会生气,也不会回答不。请继续关注,我们将创建一个扩展函数来遍历在12.2.4节中提到的ClosedRange <String>中的元素。