Kotlin中‘until’与‘..’仅为语法差异吗?算法行为有区别吗?
Kotlin中
0 until limit与0..limit循环的行为差异 这两种循环写法存在明确的算法行为差异,绝非单纯语法层面的区别,和.forEach()与普通for循环的语法简化关系完全不同。
核心区别
0..limit生成的是闭区间(ClosedRange),循环会遍历从起始值到结束值的所有整数,包含上限值limit。
比如当limit=3时,循环变量i会依次取0、1、2、3。0 until limit生成的是半开区间,循环仅遍历从起始值到limit-1的整数,不包含上限值limit。
比如当limit=3时,循环变量i会依次取0、1、2。
代码示例
val limit = 3 // 闭区间循环,输出:0、1、2、3 for (i in 0..limit) { println(i) } // 半开区间循环,输出:0、1、2 for (i in 0 until limit) { println(i) }
简单来说,二者的差异直接体现在遍历的元素范围上,是逻辑层面的不同,而非语法糖的区别。
内容的提问来源于stack exchange,提问作者younes alaoui
相关产品推荐
相关产品推荐

