前言
在Java中,使用for语句通过索引遍历数组时,可在for语句中定义临时循环变量,并控制变量的范围和递增,如下示例:
String [] array = new String [] {"One", "Two", "Three", "Four", "Five"};
// 使用索引的方式遍历数组
for (int i = 0; i < array.length; i ++) {
System.out.println(array[i]);
}
但是在Kotlin中,你会发现,是无法再for语句中定义临时循环变量。但是在Kotlin中有区间表达式可以完美实现这些功能。
val array = listOf("One", "Two", "Three", "Four", "Five")
for (i in 0 .. array.size - 1) {
println(array[i])
}
以上就是区间的一种(rangeTo),区间表达式通常可以使用in或者!in操作符表示“在”或者“不在”某个区间内。
区间的几种类型
rangeTo区间
rangeTo()区间可以使用两个连续的点..表示,表示在这个区间范围之内,如上面的示例所示,rangeTo()表示的区间是左右闭包的,也就是包含区间声明的所有取值。上面的示例中,数组的索引是0~size-1,区间结尾必须是size-1.
downTo区间
downTo和rangeTo是一对相互倒置的区间,是从最后往前遍历,同样也是左右闭包的区间
val array = listOf("One", "Two", "Three", "Four", "Five")
for (i in array.size - 1 downTo 0) {
println(array[i])
}
until区间
until区间表示从区间的开头开始,遇到结尾结束。这是一个左闭右开的区间,until的含义是直到xxx停止,但是不会包含结束条件的值。于是,前面遍历数组的可以写成以下代码:
val array = listOf("One", "Two", "Three", "Four", "Five")
for (i in 0 until array.size) {
println(array[i])
}
区间遍历的间隔
使用区间进行遍历可以设置编辑间隔,通过step来定义。
val array = listOf("One", "Two", "Three", "Four", "Five")
for (i in 0 until array.size step 2) {
println(array[i])
}
上面的示例中表示输出数组每隔2的元素,这个等同于java中的
String [] array = new String [] {"One", "Two", "Three", "Four", "Five"};
// 使用索引的方式遍历数组
for (int i = 0; i < array.length; i+2) {
System.out.println(array[i]);
}
Kotlin区间表达式详解
本文深入探讨了Kotlin中的区间表达式,包括rangeTo、downTo和until三种类型的使用方法,以及如何设置遍历间隔。通过实例展示了区间在数组遍历中的应用,对比了与Java中for语句的不同。
1245

被折叠的 条评论
为什么被折叠?



