Kotlin範圍
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
迭代。
Kotlin整數範圍
下面來看看如何使用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
Kotlin字符範圍
使用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範圍步長
範圍內的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
Kotlin範圍迭代器
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