package main
import (
"errors"
"fmt"
"strconv"
)
func main() {
var err error
err = errors.New("test")
for i := 0; i < 2; i++ {
fmt.Println(err)
r, err := strconv.Atoi("1s")
fmt.Println(r, err)
}
fmt.Println(err)
}
此时 := 不能修改全局变量的值,在该作用域里并没有定义时, := 会是创建新变量.for循环的里的err 不影响最外层全局的err ,所以最终打印err还是test
因为内部声明的err将屏蔽外部的声明
可以看到for 里面的 := 只是临时覆盖
image.png