Kotlin - 范围



Kotlin 的范围由其两个端点值定义,这两个值都包含在范围内。Kotlin 范围是使用rangeTo()函数创建的,或者简单地使用downTo(. .)运算符。范围的主要操作是contains,通常以in!in运算符的形式使用。

示例

1..10  // Range of integers starting from 1 to 10

a..z   // Range of characters starting from a to z

A..Z   // Range of capital characters starting from A to Z

范围的两端始终包含在范围内,这意味着表达式 1..4 对应于值 1、2、3 和 4。

使用 rangeTo() 创建范围

要创建 Kotlin 范围,我们对范围起始值调用rangeTo()函数,并将结束值作为参数提供。

示例

fun main(args: Array<String>) {
   for ( num in 1.rangeTo(4) ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

1
2
3
4

使用 .. 运算符创建范围

rangeTo()通常在其运算符形式..中调用。因此,可以使用..运算符改写上述代码,如下所示

示例

fun main(args: Array<String>) {
   for ( num in 1..4 ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

1
2
3
4

使用 downTo() 运算符创建范围

如果要定义反向范围,可以使用downTo运算符

示例

fun main(args: Array<String>) {
   for ( num in 4 downTo 1 ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

4
3
2
1

Kotlin step() 函数

我们可以使用step()函数来定义范围值的距离。让我们来看下面的例子

示例

fun main(args: Array<String>) {
   for ( num in 1..10 step 2 ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

1
3
5
7
9

Kotlin 字符范围

可以为字符创建范围,就像我们为整数值创建范围一样。

示例

fun main(args: Array<String>) {
   for ( ch in 'a'..'d' ) {
     println(ch)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

a
b
c
d

Kotlin reversed() 函数

reversed()函数可用于反转范围的值。

示例

fun main(args: Array<String>) {
   for ( num in (1..5).reversed() ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

5
4
3
2
1

Kotlin until() 函数

until()函数可用于创建范围,但它将跳过给定的最后一个元素。

示例

fun main(args: Array<String>) {
   for ( num in 1 until 5 ) {
     println(num)
   }
}

运行上述 Kotlin 程序后,将生成以下输出

1
2
3
4

最后一个、第一个、步长元素

我们可以使用范围的firstlaststep属性来查找范围的第一个值、最后一个值或步长。

示例

fun main(args: Array<String>) {
   println((5..10).first)
   println((5..10 step 2).step)
   println((5..10).reversed().last)
}

运行上述 Kotlin 程序后,将生成以下输出

5
2
5

过滤范围

filter()函数将返回与给定谓词匹配的元素列表

示例

fun main(args: Array<String>) {
   val a = 1..10
   val f = a.filter { T -> T % 2 == 0 }
   
   println(f)
}

运行上述 Kotlin 程序后,将生成以下输出

[2, 4, 6, 8, 10]

范围中的不同值

distinct()函数将返回具有重复值的范围中的不同值列表

示例

fun main(args: Array<String>) {
   val a = listOf(1, 1, 2, 4, 4, 6, 10)
   
   println(a.distinct())
}

运行上述 Kotlin 程序后,将生成以下输出

[1, 2, 4, 6, 10]

范围实用函数

我们可以对范围应用许多其他有用的函数,例如minmaxsumaveragecount

示例

fun main(args: Array<String>) {
   val a = 1..10
   
   println(a.min())
   println(a.max())
   println(a.sum())
   println(a.average())
   println(a.count())
}

运行上述 Kotlin 程序后,将生成以下输出

1
10
55
5.5
10

测验时间 (面试与考试准备)

答案:D

解释

所有给定的陈述都是关于 Kotlin 范围的真实陈述

Q 2 - 以下程序的输出是什么?

fun main(args: Array<String>) {
   val a = 1..20
   
   println(a.average())
}

A - 这将打印 10.5

B - 这只会发出警告

C - 编译将停止并报错

D - 以上都不是

答案:A

解释

average() 函数用于获取范围值的平均值。

Q 2 - 以下程序的输出是什么?

fun main(args: Array<String>) {
   val a = 1..20
   
   if( 3 in a){
      print( true )
   }else{
      print( false )
   }
}

A - true

B - false

C - 编译将停止并报错

D - 以上都不是

答案:A

解释

它将返回 true,因为 3 在范围内,所以in运算符将返回 true。

广告
© . All rights reserved.