1. 声明变量
// 声明变量:var
// 声明常量:const
// 声明类型:type
// 声明函数:func
// 申请单个类型相同变量
var name, address string
// 申请多个类型多个变量
var(
name string, address string
age int
)
2. 变量赋值
// 已经被声明的变量,直接"="号赋值
name, address = "张三", "成都"
age = 20
// 未被声明的变量赋值
// 1. 常规声明+赋值
var(
name string = "张三"
address string = "成都"
age int = 20
)
// 2. 初始化变量类型可不写,不写Golang会根据初值自动判断变量类型
var(
name = "张三"
address = "成都"
age = 20
)
// 3. 多变量赋值
var(
name, address, age = "张三", "成都", 20
)
// 4. 不使用var关键字,使用":="来给未被声明的变量赋值
// 此方式只能在函数内部使用,用于全局变量会报错
name, address := "张三", "成都"
age := 20
// 5. 声明常量和声明变量的方式类似,关键字const
// 声明时必须赋值
// 常量类型只能是布尔型、数字型(整数型、浮点型、复数)和字符串型
// 不能使用:=声明
const HTTPStatusOK = 200
const(
HTTPError = 500
HTTPCode = 1
)
// 6. Golang内建new函数声明一个指针变量
ptr := new(int) // 返回指针类型*Type,指向的值默认为0
// iota枚举
// iota常量生成器可以用于生成一组以相似规则初始化的常量
// 1. iota常量自动生成器,每隔一行,自动+1
// 2. iota遇到const,重置为0
// 3. 对多个常量使用iota,在同一个圆括号中只写一个iota
// 4. 同一行iota代表同一个值
3. 匿名变量
// 用"__"表示,这些值不能再后续的代码中使用,也不可以使用这个标识符作为变量对其他变量进行赋值或运算。
// 匿名变量不占用内存空间,不会分配内存。匿名变量与匿名变量之间也不会因为多次声明而无法使用。