go语言作用域(5)

2023年 7月 15日 30.2k 0

请输入图片描述作用于定义标识符可以使用的范围。在go中使用{}定义作用域的范围。在{}中可以嵌套语句块。

但是,子语句快可以使用父语句块,父语句快不可以使用子语句块。如下所示就会报:undefined: inner.因为在{}外是不能调用{}内的inner := 2

    outer := 1
    {
        inner := 2
        fmt.Println(outer)
        fmt.Println(inner)
    }
    fmt.Println(inner)

子语句快可以使用父语句块

outer := 1
{
    inner := 2
    fmt.Println(outer)
    fmt.Println(inner)
    {
        inner2 := 3
        fmt.Println(outer,inner,inner2)
    }
}
//fmt.Println(inner)

运行

[root@LinuxEA /opt/Golang]# go run 05.go 
1
2
1 2 3

假如在语句块中嵌套了很多层,那么调用的流程就是就近调用。

outer := 1
{
    inner := 2
    outer := 11
    fmt.Println(outer)
    fmt.Println(inner)
    {
        inner2 := 3
        fmt.Println(outer,inner,inner2)
    }
}
fmt.Println(outer)

运行

[root@LinuxEA /opt/Golang]# go run 05.go 
11
2
11 2 3
1

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论