范围表达式的扩展
上面列出的是Kotlin中最常用的范围表达式。除了这些,Kotlin的范围表达式还可以被用在更多的上下文和复杂的表达式中。虽然没有其他的特殊范围表达式关键字,但是你可以利用上述工具以更多的方式使用范围:
反转范围:
通过使用标准库的扩展函数,可以创建一个反转的范围,例如使用.reversed()
。
val reversedRange = (1..5).reversed() // 得到一个5到1的递减范围
使用范围来执行更复杂的查询:
结合使用filter
、map
等集合操作函数,可以在范围上执行复杂的查询。
val squares = (1..10).map { it * it } // 获取1到10每个数的平方
自定义范围类:
你可以实现ClosedRange<T>
接口来创建自定义的范围类,这对于非标准类型或者具有特殊行为的范围很有用。
class DateRange(override val start: LocalDate, override val endInclusive: LocalDate) : ClosedRange<LocalDate> {
// ...
}
使用范围与when表达式:
val score = 85
when (score) {
in 90..100 -> println("Excellent")
in 80..89 -> println("Good")
in 70..79 -> println("Average")
else -> println("Fail")
}
使用范围来控制流:
利用范围检查来决定程序流程。
if (x !in 0..array.lastIndex) {
println("Out of bounds")
}
虽然这些不是新的范围表达式,但它们是对基本范围表达式的扩展和创造性使用。Kotlin的强大之处在于你可以将这些构造以非常直观和灵活的方式结合起来,以适应你的特定需求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了