Kotlin 两个任意数的范围

Kotlin 两个任意数的范围,kotlin,range,Kotlin,Range,在Kotlin中,可以通过写入a..b来创建两个数字的范围,但a

在Kotlin中,可以通过写入
a..b
来创建两个数字的范围,但a 有没有一种简单的方法来创建两个任意数字之间的范围?
这样做的逻辑是:
min(a,b)…max(a,b)

恐怕在标准库中没有捷径可走。但是你可以很容易地添加自己的库。你的问题给出了一种方法:

fun rangeBetween(a: Int, b: Int) = min(a, b) .. max(a, b)
还有一个:

fun rangeBetween(a: Int, b: Int) = if (a > b) a downTo b else a .. b
(它们在检查中的
行为相同,但在迭代顺序上有所不同:第一个总是从低到高递增,而后一个总是从第一个数字到第二个数字递增或递减。)

不幸的是,这些不能成为通用的,因为
Int
s、
Long
s、
Byte
s、
Short
s等的
min()
/
max()
方法和范围类型都不同。但如果需要,可以为其他类型添加重载


(我不知道科特林为什么对区分上升和下降范围如此挑剔。你可能会认为这是一种相当常见的情况,允许范围根据需要向上或向下计数是一种简化。)

如果a大于b,你想让它倒计时吗?这只是测试某个值是否在a和b之间。我不想把它当作一种进步。