目录
1. 变量的命名
2. 变量的声明
3. 变量声明时注意事项
4. 变量的初始化
5. 简单例子
变量主要用来存储数据信息,变量的值可以通过变量名进行访问。
1. 变量的命名
在Go语言中,变量名的命名规则 与其他编程语言一样,都是由字母、数字、下划线组成,其中变量名的首字符不能为数字。
- 变量名应该使用驼峰命名法(Camel Case),例如 myVariable。
- 变量名应尽量具有描述性,能够清晰表达变量的用途和含义。
- 变量名由字母、数字、下划线组成,其中首个字符不能为数字。
- Go语言中关键字和保留字都不能作变量名。
2. 变量的声明
注意:Go语言中,在声明变量时,是将 变量的类型放在变量的名称之后。例如,在C/C++中,变量的声明格式为 int a; ,在Go中,变量的声明格式为 var a int 。
变量的声明通常使用 var 关键字。
变量的声明格式为:
var identifier type
- var:声明变量的关键字
- identifier:变量名
- type:变量的类型
- 注意:声明变量时,行尾无须添加分号
例如:
var a int // 声明整型类型的变量,并保存整数数值var b string // 声明字符串类型的变量var c []float32 // 声明32位浮点切片类型的变量var d func() bool // 声明返回值为布尔类型的函数变量var e struct{ // 声明结构体类型的变量,该结构体拥有整型的x字段x int
}
在上述代码中:例如, var a int ,其中 var 为关键字,a 为变量名,int 是变量的类型。
3. 变量声明时注意事项
- (1)可以一次声明多个变量,例如,var a,b int
- (2)变量在声明之后必须要使用,即 程序中不包含没有使用的无意义的变量
- (3)声明一个变量后,变量有默认值,每个变量会初始化为其类型的默认值(见第4部分:变量的初始化)
- (4)程序中,同一个{ }中,声明的变量名是唯一的
4. 变量的初始化
Go语言在声明变量时,自动对变量对应的内存区域进行初始化操作。每个变量会初始化为其类型的默认值。
- 整型和浮点型变量的默认值为0。
- 字符串变量的默认值为空字符串。
- 布尔型变量的默认值为false。
- 切片、函数、指针变量的默认值为nil。
(1)变量初始化的标准格式
var 变量名 类型 = 表达式
例如:
var a int = 2
其中,a为变量名,类型为int,a的初始值为2。
(2)编译器推导类型的格式
var a int = 2 中 2和int 同为int类型,因此可以进一步简化初始化的写法,即
var a = 2
等号右边的部分在编译原理里被称为右值(rvalue)。
(3) 自动推导类型
a := 2
其中,:= 只能出现在函数内(包括在方法内),此时Go编译器会自动进行数据类型的推断。
注意:
- := 代表声明的同时对变量进行定义,不需要var关键字
- 使用 := 写法时,推导声明写法的左值变量必须是没有定义过的变量,若再次定义,会出现编译错误。
- 该种写法同样支持多个类型变量同时声明并赋值,例如:
a, b := 1, 2
5. 简单例子
package mainimport "fmt"func main() {//1. 声明格式var a intfmt.Println("a = ", a) //声明一个变量后,变量有默认值,int类型默认为0//可以同时声明多个变量//var b, c inta = 10 //赋值:先声明,后赋值,赋值前必须先声明变量fmt.Println("a = ", a)//2.变量的初始化,声明变量时,同时赋值var b int = 2 //初始化,声明变量时,同时赋值b = 20 //赋值,先声明,后赋值fmt.Println("b= ", b)//3.自动推导类型,必须初始化,通过初始化的值确定类型(常用)c := 30 //:= 代表声明的同时对变量进行定义,不需要var关键字fmt.Println("c = ", c)//%T:打印变量所属的类型fmt.Printf("c type is %T\n", c)
}
运行结果: