概述
在Kotlin的标准库中提供了ClosedRange
整数性的值范围
任何可比较大小的数据类型(comparable type)都可以定义值范围, 但对于整数性的基本类型, 在Kotlin中做了特殊的优化。在标准库中,定义了 IntRange , LongRange , CharRange等3个Range,我们可以直接使用。可以对这些值范围进行遍历. 编译器会负责将这些代码变换为 Java 中基于下标的 for 循环, 不会产生不必要的性能损耗.
for (i in 1..4) print(i) // 打印结果为: "123
值范围不仅能够按需便利,还能够反序遍历。如果反序遍历整数,那就得调用扩展函数downTo了:
for (i in 4 downTo 1) print(i) // 打印结果为: "4321"
如果你觉得值范围,就这些功能你就错了,它还能控制不长,也就是说间隔多少个遍历,step()函数可以你实现:
for (i in 1..4 step 2) print(i) // 打印结果为: "13"
for (i in 4 downTo 1 step 2) print(i) // 打印结果为: "42"
工具函数
rangeTo
class Int {
//...
operator fun rangeTo(other: Long): LongRange = LongRange(this, other)
//...
operator fun rangeTo(other: Int): IntRange = IntRange(this, ot