golang := 变量作用域 (坑)

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容