今天开始,深入学习golang语言,记录下来以备后用。
变量
变量定义
- var用于定义变量,类型放在变量名后面,变脸定义之后会被初始化为零值。
1
2var x int
var y = false - 可以一次定义多个变量,包括不同初始值定义不同类型
1
2var x, y int
var a, s = 100, "abc"
简短模式
1 | func main() { |
如上段代码,简短模式的限制条件
- 定义变量的同时显式初始化;
- 不能提供数据类型;
- 只能在韩式内部使用;
简短模式的退化赋值: 最少有一个新变量被定义,且必须在同一个作用域1
2
3
4func main() {
x := 12
x, y := 20, 15 // x为退化赋值,y是新定义
}
多变量赋值
1 | func main() { |
多变量赋值时,首先计算等号右侧的值,在对左侧变量赋值;
空标识符
_ 是空标识符,用作忽略占位符。
常量
golang常量用const关键字定义
1 | const x, y int = 123, 0x22 |
此外,也可以在函数内部定义常量,不被使用的常量不会再编译期报错;
在常量组中,如果没有指定类型和初始化值,则与上一行非空常量右值相同1
2
3
4
5
6
7
8func main() {
const {
x uint16 = 120
y
s = "abc"
z
}
}
枚举
golang中没有enum的定义,不过可以借助iota标识符实现一组自增常量值实现枚举;1
2
3
4
5const {
x = iota // 0
y // 1
z // 2
}
引用类型
特指 slice、map和channel三种类型,引用类型必须通过make函数创建。