```
var a int
a, b := 1,2
```
像这样的赋值是允许的,但是当出现如下情况时:
```
var a int
for i:=0; i<3; i++ {
a, err := f()
}
// 在这里得不到for代码块里面的a
```
一不留神,坑就来了。for 代码块里面的a是for代码块的本地变量,而不是for代码库外面的全局变量
```
var a int
for i:=0; i<3; i++ {
var err error
a, b = f() // 此时a是全局变量
}
```
有疑问加站长微信联系(非本文作者)