范围表达式
Kotlin 的范围表达式(Range Expressions)用于表示一个区间,可以用于检查某个值是否在某个范围内、遍历该范围内的所有值、生成序列等操作。范围表达式主要通过 .. 运算符创建,并且支持多种类型,包括整数、字符等。
一、创建范围
- 整数范围
kotlin
val intRange = 1..10 // 表示从 1 到 10(包括 10)
- 字符范围
kotlin
val charRange = 'a'..'z' // 表示从 'a' 到 'z'(包括 'z')
- 递减范围
kotlin
val intRange = 10 downTo 1 // 表示从 10 到 1(包括 1)
- 步长范围
kotlin
val intRange = 1..10 step 2 // 表示从 1 到 10,每次递增 2
二、使用范围表达式
- 检查值是否在范围内
kotlin
val isInRange = 5 in 1..10 // true
val isNotInRange = 15 in 1..10 // false
- 遍历范围
kotlin
for (i in 1..5) {
println(i) // 打印 1 到 5
}
- 反向遍历范围
kotlin
for (i in 5 downTo 1) {
println(i) // 打印 5 到 1
}
- 带步长的遍历
kotlin
for (i in 1..10 step 2) {
println(i) // 打印 1, 3, 5, 7, 9
}
- 字符范围遍历
kotlin
for (ch in 'a'..'f') {
println(ch) // 打印 a 到 f
}
三、特殊范围表达式
- 开区间 Kotlin 没有直接的开区间表达式,但可以通过过滤或使用辅助函数来实现开区间的效果。例如,创建一个不包括上限的范围:
kotlin
val openRange = 1 until 10 // 表示从 1 到 9(不包括 10)
- 浮点数范围 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
}