6. 区间

作者: 努力生活的西鱼 | 来源:发表于2019-10-31 20:10 被阅读0次
    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,");
        }
    

    相关文章

      网友评论

          本文标题:6. 区间

          本文链接:https://www.haomeiwen.com/subject/gueavctx.html