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")
}