作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
Go 语言中变量可以在三个地方声明:
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数定义中的变量称为形式参数
局部变量:在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量
全局变量:在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用.(全局变量可以在任何函数中使用)
注意:Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑. 形式参数:形式参数会作为函数的局部变量来使用
![](https://i-blog.csdnimg.cn/blog_migrate/d37abdd49a1477814a66a737bbebc574.png)
局部变量的例子:
![](https://i-blog.csdnimg.cn/blog_migrate/64089cfcc313389c1e0eb5468635d582.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9332b07c58b5ef9f00a3b59699228f8f.png)
全局变量的例子:
![](https://i-blog.csdnimg.cn/blog_migrate/291a560d73f6ddb3e412d26ceea0eba0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3e3d5a17e2a395a99b32ffd4e5ed6e3d.png)
(注意:Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑) 的例子:
![](https://i-blog.csdnimg.cn/blog_migrate/7f56c4620ced301bff0b144bc31b6591.png)
![](https://i-blog.csdnimg.cn/blog_migrate/aad4a6793e9085a2fc417dbb91e1afe6.png)
形式参数的例子:
![](https://i-blog.csdnimg.cn/blog_migrate/227beb54fb476f422e7fe565680d11d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/533bd2c3770110f4d2f53af290e58ea8.png)