Создание эксклюзивных диапазонов в котлине

Я только начинаю с Kotlin. Я хочу создать диапазон от 1 до n где n excluded. Я узнал, что у Kotlin есть диапазоны, и я могу использовать их следующим образом

1..n

но это inclusive диапазон, который включает 1 и n. Как создать exclusive диапазоны.

Ответы

Ответ 1

Не уверен, что это лучший способ сделать это, но вы можете определить расширение Int которое создает IntRange из (нижняя граница +1) в (верхняя граница - 1).

fun Int.exclusiveRangeTo(other: Int): IntRange = IntRange(this + 1, other - 1)

И затем используйте его таким образом:

for (i in 1 exclusiveRangeTo n) { //... }

Здесь вы можете найти более подробную информацию о том, как работают диапазоны.

Ответ 2

Вы можете использовать функцию until в Kotlin stdlib:

for (i in 1 until 5) {
    println(i)
}

Что будет печатать:

1
2
3
4

Ответ 3

Используйте until

for(i in 0 until 4){
        println(i)
    }

Выход:

0
1
2
3