Kotlin范围定义为从开始值到结束值的间隔。范围表达式是使用运算符(..)创建的,该运算符由in和!in进行补充。等于或大于起始值且小于或等于终止值的值在定义的范围内。

val aToZ = a..z
val oneToNine = 1..9

在评估上述代码时,val aToZ =a..z,因为aToZ中的a返回true,aToZ中的b返回true,依此类推。代码val oneToNine = 1..9在oneToNine中的值为1时返回true,但在oneToNine中的值为10时返回false。

整数类型范围(IntRange,LongRange,CharRange)是在for循环中使用的函数。编译器以Java索引for-loop的简单模拟形式转换此整数类型。

fun main(args: Array<String>) {

   for (a in 1..5){
        print(a )
   }
   println()
   for(x in a..f){
        print(x )
   }
   println()
   val range = 1.0..5.0
   println(range)
   println("3.14 in range is ${3.14 in range}")
}

输出:

12345
abcdef
1.0..5.0
3.14 in range is true

当无涯教程尝试使用递减r范围迭代时... 运算符这将不打印任何内容。


要按递减顺序迭代元素,请使用标准库downTo()函数或downTo关键字。

for (a in 5 downTo 1){
   print(a )// 54321
}

until range

范围内的until()函数或until关键字用于排除最后一个元素。迭代范围是从开始到小于结束的1。

for (a in 1 until 5){
   print(a )//print 1234
}

上述范围不包括5并从1到4次迭代。

整数范围

无涯教程来看一个使用downTo(),downTo和rangeTo()方法的整数范围示例。

    fun main(args: Array<String>) {
        for (x in 1..5)
            print(x)
        println()
        for (x in 5 downTo 1)
            print(x)
        println()
        for (x in 1.rangeTo(5))
            print(x)
        println()
        for (x in 5.downTo(1))
            print(x)
        println()
    }

输出:

12345
54321
12345
54321

字符范围

使用char数据类型的Kotlin范围示例。

fun main(args: Array<String>) {
   for (x in a..e)
       print("$x ")
       println()
       for (x in e downTo a)
            print("$x ")
}

输出:

a bcde
edcba

Range步长

range中的Kotlin step关键字用于在给定step值(int值)的间隔内迭代范围。

fun main(args: Array<String>) {
        for (x in 1..10 step 2)
            print("$x ")
        println()
        for (x in 10 downTo 1 step 3)
            print("$x ")
}

输出:

1 3 5 7 9 
10 7 4 1

Range迭代器

还使用iterator()方法来迭代范围值。它使用hasNext()方法检查范围内的下一个元素,next()方法返回范围内的下一个元素。

fun main(args: Array<String>) {

val chars = (a..e)
val it = chars.iterator()
    while (it.hasNext()) {
        val x = it.next()
        print("$x ")
    }
}

输出:

a b c d e

Kotlin - 整数范围(Range) - 无涯教程网无涯教程网提供Kotlin范围定义为从开始值到结束值的间隔。范围表达式是使用运算符(..)创建的,该运算...https://www.learnfk.com/kotlin/kotlin-integer-range.html

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐