Go语言中的全局变量和局部变量

全局变量和局部变量

全局变量

定义在函数外部的变量称为全局变量

全局变量在任何地方都可以进行使用

局部变量

定义在{}里面的变量时局部变量,只能在{}里面有效

执行到定义的那句话,开始分配内存空间,离开作用域自动进行释放

作用域,就是变量作用的范围

全局变量和局部变量可同名

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package main

import "fmt"

var a bool //全局变量
func main() {
var a int //局部变量
//1、不同作用域,允许定义同名变量
//2、使用变量的原则,就近原则
fmt.Printf("1: %T\n", a) //int

{
var a float32
fmt.Printf("2: %T\n", a) //float32
}

test()
}
func test() {
fmt.Printf("3: %T\n", a) //bool
}

输出结果

image-20210428112917319

建议

为了避免出现混淆,建议全局变量加上g_前缀,局部变量加上m_前缀以区分