Skip to content

范围表达式

Kotlin 的范围表达式(Range Expressions)用于表示一个区间,可以用于检查某个值是否在某个范围内、遍历该范围内的所有值、生成序列等操作。范围表达式主要通过 .. 运算符创建,并且支持多种类型,包括整数、字符等。

一、创建范围

  1. 整数范围
kotlin
val intRange = 1..10  // 表示从 1 到 10(包括 10)
  1. 字符范围
kotlin
val charRange = 'a'..'z'  // 表示从 'a' 到 'z'(包括 'z')
  1. 递减范围
kotlin
val intRange = 10 downTo 1  // 表示从 10 到 1(包括 1)
  1. 步长范围
kotlin
val intRange = 1..10 step 2  // 表示从 1 到 10,每次递增 2

二、使用范围表达式

  1. 检查值是否在范围内
kotlin
val isInRange = 5 in 1..10  // true
val isNotInRange = 15 in 1..10  // false
  1. 遍历范围
kotlin
for (i in 1..5) {
    println(i)  // 打印 1 到 5
}
  1. 反向遍历范围
kotlin
for (i in 5 downTo 1) {
    println(i)  // 打印 5 到 1
}
  1. 带步长的遍历
kotlin
for (i in 1..10 step 2) {
    println(i)  // 打印 1, 3, 5, 7, 9
}
  1. 字符范围遍历
kotlin
for (ch in 'a'..'f') {
    println(ch)  // 打印 a 到 f
}

三、特殊范围表达式

  1. 开区间 Kotlin 没有直接的开区间表达式,但可以通过过滤或使用辅助函数来实现开区间的效果。例如,创建一个不包括上限的范围:
kotlin
val openRange = 1 until 10  // 表示从 1 到 9(不包括 10)
  1. 浮点数范围 Kotlin 目前不直接支持浮点数范围,但可以通过步长和生成序列来实现类似的功能:
kotlin
val floatRange = generateSequence(0.5) { it + 0.5 }.takeWhile { it <= 5.0 }
for (value in floatRange) {
    println(value)  // 打印 0.5, 1.0, 1.5, ..., 5.0
}

Released under the MIT License.