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 returned() 函数

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

例子

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

当你运行上面的 Kotlin 程序时,它将生成以下输出:

5
4
3
2
1

Kotlin 直到 () 函数

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

例子

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

当你运行上面的 Kotlin 程序时,它将生成以下输出:

1
2
3
4

最后一步、第一步元素

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

例子

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]

某个范围内的不同值

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

例子

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 Range 的所有给出的陈述都是正确的

问题 2 - 以下程序的输出是什么:

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

A - 这将打印 10.5

B - 这只会引发警告

C - 编译将因错误而停止

D - 以上都不是

答案:A

解释

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

问题 2 - 以下程序的输出是什么:

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

A-正确

B-

C - 编译将因错误而停止

D - 以上都不是

答案:A

解释

它将返回 true,因为 3 在范围内可用,因此in运算符将返回 true。