Kotlin之for与区间表达式

2019-12-20  本文已影响0人  钦_79f7

区间表达式

区间表达式由具有操作符形式 ..rangeTo 函数辅以 in!in 形成。

in

if (i in 1..10) { // 等同于 1 <= i && i <= 10
    println(i)
}

整型区间(IntRange、 LongRange、 CharRange)有一个额外的特性:它们可以迭代。 编译器负责将其转换为类似 Java 的基于索引的 for-循环而无额外开销:

for (i in 1..4) print(i) // 输出“1234”

for (i in 4..1) print(i) // 什么都不输出

如果你想倒序迭代数字呢?也很简单。你可以使用标准库中定义的 downTo() 函数:

for (i in 4 downTo 1) print(i) // 输出“4321”

能否以不等于 1 的任意步长迭代数字? 当然没问题, step() 函数有助于此:

for (i in 1..4 step 2) print(i) // 输出“13”

for (i in 4 downTo 1 step 2) print(i) // 输出“42”

要创建一个不包括其结束元素的区间,可以使用 until 函数:

for (i in 1 until 10) {   // i in [1, 10) 排除了 10
     println(i)
}

它是如何工作的?请点击这里

for

如果你想要通过索引遍历一个数组或者一个 list,你可以这么做:

for (i in array.indices) {
    println(array[i])
}

或者你可以用库函数 withIndex:

for ((index, value) in array.withIndex()) {
    println("the element at $index is $value")
}
上一篇 下一篇

猜你喜欢

热点阅读