Go语言有四类标记:标识符(identifiers),关键字(keywords),运算符(operators)和标点符号(punctuation)以及字面量(literals)。
Go语言变量标识符由字母,数字,下划线组成,其中首个字母不能为数字,同一个字母的大小写在Go语言中代表不同标识(A,a是不同的标识)。
在声明标量的标识符的时候不能使用Go语言中的保留字,Go语言中的保留字如下:
image
支持得基本数据类型:
image.png
Go中变量声明使用关键字var,例如:
var (
a int
b string
浮点 float32
)
这种因式分解式的声明一般放在func外面,当一个变量被var声明之后,系统自动给它赋予它该类型的零值:
- int 为0
- float为0.0
- bool为false
- string为空字符串""
- 指针为nil
在Go中支持自动推导值的类型,使用 := 可以不用写var跟类型,例如:
a := 5
多个变量可以同时声明并且赋值:
a,b,c := 1,2,"3"
赋值的顺序是从左到右依次赋值的。并且在赋值的时候需要同时给三个变量一起赋值,否则会报错。
在交换值得时候可以简单得换个位置就可以:
a,b = b,a
如果将左边得a变成_则表示抛弃这个值:
_,b = b,a //a被抛弃
简式声明一般用在func内,要注意的是:全局变量和简式声明的变量尽量不要同名,否则很容易产生偶然的变量隐藏Accidental Variable Shadowing。
func main() {
x := 1
fmt.Println(x) // prints 1
{
fmt.Println(x) // prints 1
x := 2
fmt.Println(x) // prints 2
}
fmt.Println(x) // prints 1 (不是2)
}