Go

golang := 变量作用域 (坑)

2021-05-10  本文已影响0人  wuhan_goer
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
上一篇 下一篇

猜你喜欢

热点阅读