我刚开始Kotlin.我想从创建范围1到n哪里n的excluded.我发现它Kotlin有范围,我可以使用它们如下
1..n
但这是一个inclusive包括1和的范围n.如何创建exclusive范围.
Nyc*_*cto 64
您可以使用Kotlin stdlib中的until函数:
for (i in 1 until 5) {
println(i)
}
Run Code Online (Sandbox Code Playgroud)
哪个会打印:
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
不确定这是否是最好的方法,但你可以定义一个Int扩展,它创建一个IntRange从(下限+1)到(上限 - 1).
fun Int.exclusiveRangeTo(other: Int): IntRange = IntRange(this + 1, other - 1)
Run Code Online (Sandbox Code Playgroud)
然后以这种方式使用它:
for (i in 1 exclusiveRangeTo n) { //... }
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到有关范围如何工作的更多详细信
对于 Kotlin 1.8 及更高版本,请使用新的..<(rangeUntil) 运算符:
for (i in 1 ..< 5) {
println(i) // 1, 2, 3, 4
}
Run Code Online (Sandbox Code Playgroud)
它还提供了无法完成的可能性until:
val floatRange = 0f ..< 1f
val dateRange = LocalDate.of(2022, 1, 1) ..< LocalDate.of(2023, 1, 1)
val stringRange = "1z" ..< "9a"
// OR anything implementing Comparable
Run Code Online (Sandbox Code Playgroud)
请参阅介绍该运算符的Kotlin 官方视频rangeUntil。
| 归档时间: |
|
| 查看次数: |
6602 次 |
| 最近记录: |