我不太明白为什么a最后不是 2:func main (){ z := 4 if true { z := 2 fmt.Println(z) } fmt.Println(z) // prints 4}
2 回答
青春有我
TA贡献1784条经验 获得超8个赞
z越来越阴影了。更改:=为=,它将起作用。
func main (){
z := 4
if true {
z = 2
fmt.Println(z)
}
fmt.Println(z) // prints 2
}
if 语句有自己的作用域,当您使用时,:=您声明了一个新变量并隐藏了旧变量。
守着一只汪
TA贡献1872条经验 获得超3个赞
这甚至无法编译(我正在回答问题的未编辑版本)。
你必须使用;而不是,:
func main(){
a := 0
for i := 0; i < 10; i++ {
a += 5
}
fmt.Println(a) // prints 50
}
- 2 回答
- 0 关注
- 194 浏览
添加回答
举报
0/150
提交
取消