区间
- 一个数学上的概念,表示范围
-
Kotlin中的区间在Java中是没有的 - 由操作符
..(rangeTo函数),in和!in构成 - 任何可比较的类型,都定义了区间,但整型原生类型的区间实现有优化
var range: IntRange = 0..10; // [0,10]
var range_exclusive: IntRange = 0 until 10; // [0,10) = [0,9]
var emptyRange: IntRange = 0..-1;
fun main() {
println(emptyRange.isEmpty()); // true
println(range.contains(5)); // true
println(50 in range); // false
// 迭代
for (i in range_exclusive) {
print("$i, "); // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
}
}
整型区间迭代
整型区间(IntRange,LongRange,CharRange)可迭代,循环遍历。
Kotlin编译器会将整形区间转换为类似Java基于索引的for循环,没有额外开销。
// 倒叙迭代
for (i in 5 downTo 1) { // 5,4,3,2,1,
print("$i,");
}
// 不以步长为1迭代
for (i in 1.rangeTo(10) step 2) { // 1,3,5,7,9,
print("$i,");
}
// 不以步长为1 倒叙迭代
for (i in 10 downTo 1 step 3) { // 10,7,4,1,
print("$i,");
}










网友评论