Kotlin范围

Kotlin范围

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

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

在上述代码:val aToZ ='a'..'z',表示a包含在aToZ中,b包含在aToZ中,依此类推。 代码val oneToNine = 1..9表示1包含在oneToNine中,但oneToNine中不包含10

整数类型范围

整数类型范围(IntRangeLongRangeCharRange)是用于for循环。 编译器以简单的Java索引for循环模拟转换此整数类型。

Kotlin范围的例子

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范围时发生了什么?..运算符将不打印任何内容。

 for (a in 5..1){
     print(a )// print nothing
 }

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

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

until范围

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

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

以上范围不包括5,它是从14迭代。

Kotlin整数范围

下面来看看如何使用downTo()downTorangeTo()方法的整数范围的示例。

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

Kotlin字符范围

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

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

执行上面示例代码,得到以下结果 -

a b c d e 
e d c b a

Kotlin范围步长

范围内的Kotlin 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

Kotlin范围迭代器

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

目录

数组

字符串

注解

反射