在文档中,val
是 assign-once(只读)本地变量。但是,下面是一个for循环,它将值分配给x
几次。这是一个与C ++ const
不同的概念吗?
fun main(args: Array<String>) {
val x = 6
val y = 9
for (x in 1..y) {
println("fits in range $x")
}
}
输出:
fits in range 1
fits in range 2
fits in range 3
fits in range 4
fits in range 5
fits in range 6
fits in range 7
fits in range 8
fits in range 9
答案 0 :(得分:5)
范围构造中使用的x
遮蔽了val x = 6
- 这是两个不同范围内的两个不同变量。
你可以通过写作来看到自己:
val x = 6
val y = 9
for (x in 1..y) {
println("fits in range $x")
}
println(x)
最后一次通话将打印原始值 - 6