我是 Kotlin 的初学者,正在经历 for 循环
简单代码示例:
for (i in 1..5) print(i)
Run Code Online (Sandbox Code Playgroud)
请有人告诉我为什么我们不使用关键字 var / val 指定计数器/迭代器变量类型“i”。因为“var /val”是 Kotlin 中声明变量的标准方法。
for
这就是循环语法的设计方式。我不能代表设计师说话,但我相信这是一个设计决定,以避免不必要的膨胀,甚至可能造成混乱。
不能使用现有变量作为循环变量。循环变量的作用域为循环,并遮蔽外部作用域中的现有变量。因此,这暗示着您在这里声明一个新变量,即使没有关键字(但是我必须承认,如果我们必须在这里编写 / 关键字,则遮蔽行为会更清晰val
)var
。
另外,循环变量实际上是val
循环体内部的 a (它不能重新分配),但它可能感觉像 avar
因为它在每个循环回合都会发生变化,并且从技术上讲是在循环体外部声明的。实际上,它就像val
在循环体中声明的 new ,并为每次循环迭代提供一个新值。
所以你的示例代码可以被认为是:
var temp = 1
while (temp <= 5) {
val i = temp
println(i)
temp++
}
Run Code Online (Sandbox Code Playgroud)
这可能就是为什么设计师决定不在此处放置任何关键字的原因:这是不必要的,而且两者val
都会var
以自己的方式造成混乱。
归档时间: |
|
查看次数: |
305 次 |
最近记录: |