6. 区间

Kotlin

区间

  • 一个数学上的概念,表示范围
  • 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,
    }

}
整型区间迭代

整型区间(IntRangeLongRangeCharRange)可迭代,循环遍历。
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,");
    }

推荐阅读更多精彩内容