Диапазон представляет набор значений или неокторый интервал. Для создания диапазона применяется оператор ..:
val range = 1..5 // диапазон [1, 2, 3, 4, 5]
Этот оператор принимает два значения - границы диапазона, и все элементы между этими значениями (включая их самих) составляют диапазон.
Диапазон необязательно должна представлять числовые данные. Например, это могут быть строки:
val range = "a".."d"
Оператор .. позволяет создать диапазон по нарастающей, где каждый следующий элемент будет больше предыдущего. С помощью специальной функции downTo можно построить диапазон в обратном порядке:
val range1 = 1..5 // 1 2 3 4 5 val range2 = 5 downTo 1 // 5 4 3 2 1
Еще одна специальная функция step позволяет задать шаг, на который будут изменяться последующие элементы:
val range1 = 1..10 step 2 // 1 3 5 7 9 val range2 = 10 downTo 1 step 3 // 10 7 4 1
Еще одна функция until позволяет не включать верхнюю границу в диапазон:
val range1 = 1 until 9 // 1 2 3 4 5 6 7 8 val range2 = 1 until 9 step 2 // 1 3 5 7
С помощью специальных операторов можно проверить наличие или отсутствие элементов в диапазоне:
in: возвращает true, если объект имеется в диапазоне
!in: возвращает true, если объект отсутствует в диапазоне
fun main() { val range = 1..5 var isInRange = 5 in range println(isInRange) // true isInRange = 86 in range println(isInRange) // false var isNotInRange = 6 !in range println(isNotInRange) // true isNotInRange = 3 !in range println(isNotInRange) // false }
С помощью цикла for можно перебирать диапазон:
val range1 = 5 downTo 1 for(c in range1) print(c) // 54321 println() val range2 = 'a'..'d' for(c in range2) print(c) // abcd println() for(c in 1..9) print(c) // 123456789 println() for(c in 1 until 9) print(c) // 12345678 println() for(c in 1..9 step 2) print(c) // 13579