📜  Kotlin整数范围

📅  最后修改于: 2021-01-05 08:06:56             🧑  作者: Mango

科特林山脉

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的简单模拟形式转换此整数类型。

Kotlin系列的例子

fun main(args: Array) {

   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

当我们尝试使用降序迭代ar范围时发生了什么。 。运算符?这将不print任何内容。

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

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

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

直到范围

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

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

以上范围排除5,并从1到4进行迭代。

Kotlin整数范围

让我们看一个使用downTo()downTorangeTo()方法的整数范围示例。

    fun main(args: Array) {
        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) {
 for (x in 'a'..'e')
            print("$x ")
 println()
        for (x in 'e' downTo 'a')
            print("$x ")
    }

输出:

a bcde
edcba

科特林范围步

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

fun main(args: Array) {
        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) {

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

输出:

a b c d e