一、变量
变量三要素:变量名、值、数据类型
1.为什么要声明变量?声明给谁看的?
- 声明给编译器看的,让编译器知道这个变量的类型和占用的空间大小,在编译的时候给变量分配对应大小的内存空间。
- 避免在运行时出现类型不匹配或内存溢出的错误。
- 还可以提高代码可读性和可维护性。
2.怎么声明变量?
var 变量名 数据类型
1)声明多个变量
var a, b, c int
2)声明全局变量
var (
c1 int
c2 int
)
全局变量通常是定义在包级别下的,可以在整个包内被访问。 在 Go 语言中,所有变量的作用域都是定义它们的代码块,如果变量在函数内部定义,那么它的作用域就是该函数内部。如果变量在函数外部定义,那么它的作用域就是整个包内。
3.初始化
如果不初始化会怎么样?
变量会被赋予对应的零值。
怎么初始化?
1)a := 1
相当于
var a int = 1
注意事项: a. 在相同代码块中不能对一个变量重复使用 b. 必须在函数体内使用
2)var a = 1
4.使用细节
- 同一作用域下的变量值可以在不改变类型的前提下重复赋值。
var i int = 10
i = 20
i = 30
fmt.Println("i=", i)
- 同一个作用域下的变量不能重名
- 如果没有给变量赋初值,编译器会赋默认值。 数值类型的默认值为0 字符串类型的默认值为空字符串 布尔类型的默认值为false 指针、切片、管道、字典、接口、函数的默认值为nil
5.变量的生命周期
- 全局变量的生命周期和程序的生命周期相同
- 局部变量的生命周期和函数的生命周期相同 就是说函数执行完毕之后,函数内的局部变量占用的空间就会被回收。