Kotlin的遍历方法

for循环

在下面代码中1...10表示的是1到10,两边都是闭包,输出12345678910

java 复制代码
        for (i in 1..10) println(i)

加上花括号也支持

java 复制代码
        for (i: Int in 1..10) {
            println(i)
        }

另外,当对整数进行for循环时,Kotlin还提供了一个step函数来定义迭代的步长:

java 复制代码
        for (i in 1..10 step 2) print(i)
        13579

如果是倒序呢?也没有问题,可以用downTo方法来实现

java 复制代码
       for (i in 10 downTo 1 step 2) print(i) // 通过downTo,而不是10..1
        108642

此外,还有一个until函数来实现一个半开区间:

java 复制代码
       for (i in 1 until 10) { print(i) }
        123456789 // 并不包含10

in

可以使用in来判断成员关系

java 复制代码
println("a" in arrayOf("q","w","p")) //false
println("a" in arrayOf("q","a","p")) //true
println("a" !in arrayOf("q","w","p")) //true

除了等和不等,in还可以结合范围表达式来表示更多的含义:

java 复制代码
        "kot" in "abc".."xyz"
        true

上面代码在java中的表达式为

java 复制代码
        "kot" >= "abc" && "abc" <= "xyz"

此外,我们还可以通过调用一个withIndex方法,提供一个键值元组:

java 复制代码
        for ((index, value) in array.withIndex()) {
            println("the element at $index is $value")
        }
相关推荐
t***5445 分钟前
如何在 Dev-C++ 中设置和使用 Clang 编译器
开发语言·c++
csbysj202034 分钟前
Markdown 段落格式
开发语言
无限进步_41 分钟前
C++ 继承机制完全解析:从基础原理到菱形继承问题
java·开发语言·数据结构·c++·vscode·后端·算法
leo__5201 小时前
基于时延的麦克风声源定位 - C实现
c语言·开发语言·算法
jf加菲猫1 小时前
第15章 文件和目录
开发语言·c++·qt·ui
likerhood1 小时前
Java实现选择题选项乱序算法
java·开发语言·算法
执于代码1 小时前
python 环境知多少
开发语言·python
t***5441 小时前
如何在 Dev-C++ 中切换编译器至 Clang
开发语言·c++
威迪斯特2 小时前
GoFr框架:加速微服务开发的Go语言利器
开发语言·后端·微服务·架构·golang·命令行框架·gofr框架
斯维赤2 小时前
Python学习超简单第十一弹:邮件发送
开发语言·python·学习