Kotlin 科特林山脉:为什么不是';有没有一个'downTo'变体可以排除最后一项,比如'until'?

Kotlin 科特林山脉:为什么不是';有没有一个'downTo'变体可以排除最后一项,比如'until'?,kotlin,Kotlin,在递减循环时,是否有任何声明性的解决方法来排除最后一项,如使用downTo?虽然kotlin标准库不包含此实用程序,但您可以为此定义自己的扩展函数 看看stdlib,until的一个定义是: /** * Returns a range from this value up to but excluding the specified [to] value. * * If the [to] value is less than or equal to `this` value, then

在递减循环时,是否有任何声明性的解决方法来排除最后一项,如使用
downTo

虽然kotlin标准库不包含此实用程序,但您可以为此定义自己的扩展函数

看看stdlib,until的一个定义是:

/**
 * Returns a range from this value up to but excluding the specified [to] value.
 * 
 * If the [to] value is less than or equal to `this` value, then the returned range is empty.
 */
public infix fun Int.until(to: Int): IntRange {
    if (to <= Int.MIN_VALUE) return IntRange.EMPTY
    return this .. (to - 1).toInt()
}
您可能还希望定义此函数的版本以在其他原语上操作

infix fun Int.downUntil(to: Int): IntProgression {
    if (to >= Int.MAX_VALUE) return IntRange.EMPTY
    return this downTo (to + 1).toInt()
}