Kotlin - 整数范围(Range)

Kotlin - 整数范围(Range) 首页 / Kotlin入门教程 / Kotlin - 整数范围(Range)

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范围迭代时... 运算符这将不打印任何内容。

链接:https://www.learnfk.comhttps://www.learnfk.com/kotlin/kotlin-integer-range.html

来源:LearnFk无涯教程网

要按递减顺序迭代元素,请使用标准库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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

算法面试通关40讲 -〔覃超〕

黄勇的OKR实战笔记 -〔黄勇〕

设计模式之美 -〔王争〕

分布式系统案例课 -〔杨波〕

跟月影学可视化 -〔月影〕

手把手教你玩音乐 -〔邓柯〕

React Hooks 核心原理与实战 -〔王沛〕

商业思维案例笔记 -〔曹雄峰〕

结构思考力 · 透过结构看问题解决 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)