Kotlin中如何判断值是否落在两个指定区间范围内
Kotlin判断值落在多个区间的正确写法
你原来的代码无法通过编译,核心问题是||作为布尔逻辑运算符,要求左右两边都必须是能返回布尔值的表达式,你写的(20..30)只是一个区间对象,不是判断逻辑,编译器自然无法识别。
以下是几种符合Kotlin语法的实现方式,可根据场景选用:
带参
when写法(最推荐,最简洁)
Kotlin的when分支原生支持用逗号分隔多个匹配条件,多个条件之间是逻辑或关系,只要值满足任意一个条件就会进入对应分支:when (value) { in 1..10, in 20..30 -> { // 命中区间后执行的逻辑 } }无参
when写法
如果习惯把when当作纯布尔多分支判断使用(类似其他语言的switch(true)写法),可以不给when传参数,分支里直接写完整的布尔判断即可:when { value in 1..10 || value in 20..30 -> { // 命中区间后执行的逻辑 } }普通
if写法
如果只需要做这一次区间判断,不需要其他分支,直接用if写逻辑最直接:if (value in 1..10 || value in 20..30) { // 命中区间后执行的逻辑 }
小提示:上面示例里的
1..10是包含首尾端点的闭区间,如果需要左闭右开区间(即不包含右端点),可以用until函数创建区间,比如1 until 10代表的区间是[1, 10),多区间组合的写法和上述规则完全一致。
内容的提问来源于stack exchange,提问作者Marcin Z.
相关产品推荐
相关产品推荐

