Kotlin範圍定義為從起始值到結束值的間隔。 範圍表示式使用運算子(..
)建立,並由in
和!in
補充。 等於或大於起始值且小於或等於結束值的值在定義的範圍內。
val aToZ = 'a'..'z'
val oneToNine = 1..9
在上述程式碼:val aToZ ='a'..'z'
,表示a
包含在aToZ
中,b
包含在aToZ
中,依此類推。 程式碼val oneToNine = 1..9
表示1
包含在oneToNine
中,但oneToNine
中不包含10
。
整數型別範圍(IntRange
,LongRange
,CharRange
)是用於for
迴圈。 編譯器以簡單的Java索引for
迴圈模擬轉換此整數型別。
Kotlin範圍的例子
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
範圍時發生了什麼?..
運算子將不列印任何內容。
for (a in 5..1){
print(a )// print nothing
}
要按降序疊代元素,請使用標準庫downTo()
函式或downTo
關鍵字。
for (a in 5 downTo 1){
print(a )// 54321
}
until範圍
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 b c d e
e d c b a
範圍內的Kotlin 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
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