You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin for循环中迭代变量无需标注var/val关键字的原因咨询

Kotlin for循环迭代变量无需var/val声明的原因

这是Kotlin语法设计时明确约定的简化规则,具体逻辑如下:

  • for循环的迭代变量默认是隐式只读(val)属性,作用域仅限定在循环内部,编译器会自动补全隐藏的val声明,无需开发者手动标注。你可以直接把for (i in 1..5)等价理解为for (val i in 1..5),后者本身也是符合Kotlin语法规则的写法,只是标注val属于冗余操作,一般都会省略。
  • Kotlin的for循环是基于迭代器的遍历语法,没有传统C/Java那种支持自定义变量初始值、步进规则的三段式for写法,迭代变量的赋值、更新逻辑完全由in关键字后的区间/可迭代对象的迭代逻辑控制,不存在变量可变性的歧义,所以省略val/var不会影响代码可读性。

你可以通过下面的代码验证迭代变量的只读属性:

for (i in 1..5) {
    i = 3 // 编译报错:Val cannot be reassigned,直接证明i属于隐式val类型
    print(i)
}

如果需要在循环内使用可变的计数变量,可以在循环体内部手动声明var变量使用:

for (i in 1..5) {
    var count = i
    count += 10
    println(count)
}

内容的提问来源于stack exchange,提问作者Yana Dior

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:06:03