Kotlin教程:实用函数rangeTo()、downTo()、reversed()示例

2023年 7月 12日 39.8k 0

Kotlin系列实用函数有几个标准库函数,用于Kotlin范围。 这些实用函数如下:

  • rangeTo()
  • downTo()
  • reversed()
  • step()

Kotlin rangeTo()

rangeTo()函数用于以范围中提到的递增顺序从开始到结束返回值。 rangeTo()函数是调用Range类构造函数的整数类型。

rangeTo()函数的示例

fun main(args: Array) {
    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 ")
    }
}

Kotlin

执行上面示例代码,得到以下结果 -

Printing value: 1.rangeTo(5)
1 2 3 4 5 
Printing value: IntRange(1,5)
1 2 3 4 5

Shell

浮点(如DoubleFloat)数据类型(或类型)未在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)
}

Kotlin

downTo()函数的示例

fun main(args: Array) {
    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 ")
    }

}

Kotlin

执行上面示例代码,得到以下结果 -

Range 1
5 4 3 2 1 
Range 2
5 4 3 2 1 
Range 3
5 4 3 2 1

Shell

Kotlin reversed()函数

reversed()函数用于反转返回给定范围类型的顺序。

语法:

fun IntProgression.reversed(): IntProgression {  
    return IntProgression.fromClosedRange(last, first, -step)  
}

Kotlin

reverse()函数的示例

fun main(args: Array) {
    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 ")
    }
}

Kotlin

执行上面示例代码,得到以下结果 -

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

Shell

Kotlin step()函数

step()函数(或步长运算符)用于返回按给定间隔步长值的范围值。 步长值始终采用正参数。 负步长值会生成IllegalArgumentException异常。

step()函数的示例

fun main(args: Array) {
    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 ")
}

Kotlin

执行上面示例代码,得到以下结果 -

使用步长 2 打印范围值:
1 3 5 7 9 
使用步长 3 打印范围值:
1 4 7 10 
间隔的第一个值: 1
间隔的最后一个值: 9

Shell

如果使用负整数作为步长值,则会抛出异常。

fun main(args: Array) {  
    val range: IntRange = IntRange(1,10)  
    for (x in range step -2){  
        print("$x ")  
    }  
}

Kotlin

执行上面示例代码,得到以下结果 -

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)

//原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/kotlin/kotlin-utility-functions.html#article-start

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论