Kotlin系列实用函数有几个标准库函数,用于Kotlin范围。 这些实用函数如下:
rangeTo()
downTo()
reversed()
step()
Kotlin rangeTo()
rangeTo()
函数用于以范围中提到的递增顺序从开始到结束返回值。 rangeTo()
函数是调用Range
类构造函数的整数类型。
rangeTo()函数的示例
fun main(args: Array<String>) {
var range: IntRange = 1.rangeTo(5)
println("Printing value: 1.rangeTo(5)")
for (x in range){
print("$x ")
}
println("")
var range2: IntRange = IntRange(1,5)
println("Printing value: IntRange(1,5)")
for (x in range2){
print("$x ")
}
}
执行上面示例代码,得到以下结果 -
Printing value: 1.rangeTo(5)
1 2 3 4 5
Printing value: IntRange(1,5)
1 2 3 4 5
浮点(如Double
,Float
)数据类型(或类型)未在rangeTo
运算符中定义。
Kotlin downTo()
downTo()
扩展函数用于以递减顺序从高阶到低阶返回值。 downTo()
函数是为整数类型定义的。
语法:
fun Long.downTo(other: Int): LongProgression {
return LongProgression.fromClosedRange(this, other.toLong(), -1L)
}
fun Byte.downTo(other: Int): IntProgression {
return IntProgression.fromClosedRange(this.toInt(), other, -1)
}
downTo()函数的示例
fun main(args: Array<String>) {
println("Range 1")
var range1 = 5 downTo 1
for (x in range1){
print("$x ")
}
println()
println("Range 2")
var range2: IntProgression = 5.downTo(1)
for (x in range2){
print("$x ")
}
println()
println("Range 3")
var range3: IntProgression = IntProgression.fromClosedRange(5,1,-1)
for (x in range3){
print("$x ")
}
}
执行上面示例代码,得到以下结果 -
Range 1
5 4 3 2 1
Range 2
5 4 3 2 1
Range 3
5 4 3 2 1
Kotlin reversed()函数
reversed()
函数用于反转返回给定范围类型的顺序。
语法:
fun IntProgression.reversed(): IntProgression {
return IntProgression.fromClosedRange(last, first, -step)
}
reverse()函数的示例
fun main(args: Array<String>) {
println("Reversed 1")
var range1 = 1..5
for (x in range1.reversed()){
print("$x ")
}
println()
println("Reversed 2")
var range2: IntRange = IntRange(1,5)
for (x in range2.reversed()){
print("$x ")
}
println()
println("Reversed 3")
var range3 = IntProgression.fromClosedRange(5,1,-1)
for (x in range3.reversed()){
print("$x ")
}
println()
println("Reversed 4")
var range4: IntProgression = IntProgression.fromClosedRange(5,1,-2)
for (x in range4.reversed()){
print("$x ")
}
}
执行上面示例代码,得到以下结果 -
Reversed 1
5 4 3 2 1
Reversed 2
5 4 3 2 1
Reversed 3
1 2 3 4 5
Reversed 4
1 3 5
Kotlin step()函数
step()
函数(或步长运算符)用于返回按给定间隔步长值的范围值。 步长值始终采用正参数。 负步长值会生成IllegalArgumentException
异常。
step()函数的示例
fun main(args: Array<String>) {
val range: IntRange = 1..10
println("使用步长 2 打印范围值:")
for(x in range step (2)){
print("$x ")
}
println("")
println("使用步长 3 打印范围值:")
for(x in range step 3){
print("$x ")
}
val first=((range step 2).first)
val last=((range step 2).last)
println("")
println("间隔的第一个值: $first")
println("间隔的最后一个值: $last ")
}
执行上面示例代码,得到以下结果 -
使用步长 2 打印范围值:
1 3 5 7 9
使用步长 3 打印范围值:
1 4 7 10
间隔的第一个值: 1
间隔的最后一个值: 9
如果使用负整数作为步长值,则会抛出异常。
fun main(args: Array<String>) {
val range: IntRange = IntRange(1,10)
for (x in range step -2){
print("$x ")
}
}
执行上面示例代码,得到以下结果 -
Exception in thread "main" java.lang.IllegalArgumentException: Step must be positive, was: -2.
at kotlin.ranges.RangesKt__RangesKt.checkStepIsPositive(Ranges.kt:130)
at kotlin.ranges.RangesKt___RangesKt.step(_Ranges.kt:432)
at TestKt.main(Test.kt:63)
上一篇:
Kotlin工作范围
下一篇:
从Kotlin调用Java代码