在 kotlin 中创建独占范围

Creating exclusive ranges in kotlin

我刚从 Kotlin 开始。我想创建从 1n 的范围,其中 nexcluded。我发现 Kotlin 有范围,我可以按如下方式使用它们

1..n

但这是一个 inclusive 范围,其中包括 1n。如何创建 exclusive 个范围。

2022 年更新:请使用内置函数until


旧答案:

不确定这是否是最好的方法,但您可以定义一个 Int 扩展,它创建一个从(下限)到(上限 - 1)的 IntRange

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

然后这样使用:

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

Here 您可以找到有关范围如何工作的更多详细信息。

您可以使用 Kotlin stdlib 中的 until 函数:

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

将打印:

1
2
3
4