Kotlin初體驗四:區間
-
- 區間
- 實用函數
區間表達式由具有操作符形式 … 的 rangeTo 函數輔以 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)
如果你想倒序疊代數字呢?也很簡單。你可以使用标準庫中定義的 downTo() 函數:
for (i in 4 downTo 1) print(i)
能否以不等于 1 的任意步長疊代數字? 當然沒問題, step() 函數有助于此:
for (i in 1..4 step 2) print(i)
for (i in 4 downTo 1 step 2) print(i)
要建立一個不包括其結束元素的區間,可以使用 until 函數:
for (i in 1 until 10) {
// i in [1, 10) 排除了 10
println(i)
}
rangeTo //升序區間
downTo() //降序區間
reversed() //翻轉區間
step() //步長
執行個體演練
var a = 0.rangeTo(10) //相當于 0..10
var b = 10.downTo(0) //相當于 10..0
b = b.reversed() //翻轉區間
var b = 10.downTo(0).step(3)
(1..12 step 2).last == 11 // 值為 [1, 3, 5, 7, 9, 11] 的數列
(1..12 step 3).last == 10 // 值為 [1, 4, 7, 10] 的數列
(1..12 step 4).last == 9 // 值為 [1, 5, 9] 的數列