1. 概述
在本文中,我们将深入探讨 Kotlin 中新增的 ..<
操作符,它在 Kotlin 1.9.0-RC 版本中正式稳定发布。这一新特性让开发者可以更直观、更简洁地创建不包含结束值的范围表达式(open-ended ranges)。
2. 开放范围操作符详解
✅ 功能说明
使用 ..<
操作符可以创建一个范围对象,其包含起始值(inclusive),但不包含结束值(exclusive)。
这与我们之前常用的 ..
操作符不同,后者是闭区间(包含起始和结束两个边界值)。
⚠️ 为什么引入 ..<
?
Kotlin 之前已有 until
关键字能实现类似功能,但语义不够明确,开发者很难一眼看出它是包含还是不包含结束值。引入 ..<
后,语法更清晰直观,也更符合数学中常见的区间表示法。
✅ 使用示例
val numbers: IntRange = 2..<5
assertEquals(numbers.toList(), listOf(2, 3, 4))
如上所示,2..<5
生成的范围是 [2,3,4]
,不包括 5。
再来看字符范围的例子:
val chars = ArrayList<Char>()
for (ch in 'a'..<'e') {
chars.add(ch)
}
assertEquals(chars, listOf('a', 'b', 'c', 'd'))
可以看到,'a'..<'e'
生成的字符序列是 'a'
, 'b'
, 'c'
, 'd'
,不包括 'e'
。
3. 总结
✅ 本文要点总结如下:
..<
是 Kotlin 1.9.0-RC 引入的稳定操作符- 它用于创建开放范围(即不包含结束值的范围)
- 相比
until
更直观,语义更清晰 - 可用于
IntRange
、CharRange
等常见类型 - 在循环中使用也非常自然
✅ 适用场景建议:
在需要排除结束值的场景中,比如索引遍历、分页处理、时间区间等逻辑中,..<
都是一个更优雅、语义更清晰的选择。
✅ 推荐使用姿势:
如果你正在使用 Kotlin 1.9 或以上版本,建议在所有开放范围的场景中优先使用 ..<
,以提升代码可读性和维护性。