Go 变量
2024年7月10日...大约 2 分钟
变量是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名访问。
Go 中变量名由数字、字母、下划线组成,首字母不能是数字。
变量声明
- 声明并赋值,如果提供了初始值,则类型可以省略,变量会从初始值中推断出类型
var 变量名 类型 = 值
- 如果没有提供初始值,则需要填写类型,变量默认为零值 (变量没有初始化时系统默认设置的值)
var 变量名 类型
- 数值类型的零值是
0
- 布尔类型的零值是
false
- 字符串类型的零值是
""
- 以下几种类型的零值是
nil
*int
[]int
map[string]int
chan int
func(string) int
error
这里的error
是接口
- 数值类型的零值是
- 短变量声明
:=
,不能在函数外使用变量名 := 值
- 多变量声明
- 类型相同的多个变量,非全局变量或使用短声明
var 变量名1,变量名2,变量名3 类型 变量名1,变量名2,变量名3 = 值1,值2,值3
变量名1,变量名2,变量名3 := 值1,值2,值3
- 类型不同的多个变量,全局变量
var( 变量名1 类型1 变量名2 类型2 )
- 类型相同的多个变量,非全局变量
局部变量和全局变量
- 定义在函数体 (包括 main 函数) 内的变量都是局部变量,定义了就必须使用
- 定义在函数体外部的变量就是全局变量,可以只定义不使用
值类型和引用类型
值类型包括基本数据类型和一些复合数据类型,它们存储在栈上。当你将值类型的变量赋值给另一个变量时,会进行复制操作,新变量将拥有原始值的副本。使用 &
符号来获取内存地址。
引用类型在内存中的表示是一个指向实际数据的指针,它们存储在堆上。当你将引用类型的变量赋值给另一个变量时,两个变量将指向相同的数据,因此它们是引用相同的内存地址。
Powered by Waline v3.3.2