一、标识符
在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_
(下划线)组成,并且只能以字母和_
开头。
二、关键字
关键字是指编程语言中预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。
Go语言中有25个关键字:
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
Go语言中还有37个保留字:
Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
三、变量
1. 变量声明
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明,并且Go语言的变量声明后必须使用。
Go语言变量声明格式:
var 变量名 变量类型
//变量声明以关键字var开头
//变量类型放在变量的后面,行尾无需分号
//例如:
var name string
var age int
var res bool
可以看出每声明一个变量就需要写var
关键字会比较繁琐,go语言中还支持批量变量声明:
var (
name string
age int
res bool
)
2. 变量初始化
Go语言在声明变量的时候,会自动对变量对应的内存区域进行初始化操作。每个变量会被初始化成其类型的默认值。例如: 整型和浮点型变量的默认值为0;字符串变量的默认值为空字符串;
布尔型变量默认为false;
切片、函数、指针变量的默认为nil
。
当然我们也可在声明变量的时候为其指定初始值。变量初始化的标准格式如下:
var 变量名 类型 = 表达式
//例如:
var name string = "zhangsan"
var age int = 18
//支持一次初始化多个变量
var name, age = "zhangsan", 18
3. 类型推导
当我们将变量的类型省略时,编译器会自动根据等号右边的值来推导变量的类型完成初始化:
var name = "zhangsan"
var age = 18
4. 短变量声明
在函数内部,可以使用更简略的 :=
方式声明并初始化变量:
name := "zhangsan"
age := 18
5. 匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量
。 匿名变量用一个下划线_
表示,例如:
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。
四、常量
常量是恒定不变的值,多用于定义程序运行期间不会改变的值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。
(1)单个声明
const name = "zhangsan"
const age = 18
(2)批量声明
const(
name = "zhangsan"
age = 18
)
(3)const同时声明多个常量时,如果省略了值则表示和上面一行的值相同
五、iota
1. iota简介
(1)iota是go语言的常量计数器,只能在常量的表达式中使用。
(2)iota在const关键字出现时会被重置为0,const中每新增一行常量声明,就会使iota计数加一。
(3)使用iota能简化常量定义,在定义枚举时比较有用。
2. iota常见使用示例
(1)常量定义
(2)使用"_"跳过某些值
(3)iota声明中间插队
(4)定义数量级
(5)多个iota定义在一行
五、注意事项
1.函数外的每个语句都必须以关键字开始,如var、const、func等;
2.短变量声明(:=)不能在函数外使用;
3.匿名变量(_)多用于占位,表示忽略值。