路漫漫其修远兮,吾将上下而求索。
声明一个变量
在Go中,变量是包含值的一块存储。可以使用变量声明为变量命名。只需使用var关键字,后跟所需的名称以及变量将保存的值的类型。
1 |
|
使用 = 号为其赋值
1 |
|
声明多个变量
使用 , 号分隔变量名可以一次性声明多个变量
1 |
|
为多个变量赋值
1 |
|
如何确认变量类型
同 java 一样,我们无法将一个数字类型的值赋值给一个字符串类型的变量。如果需要确认变量类型可以使用 refect 包的 TypeOf 函数。
1 |
|
零值
与 java 不同的是,如果声明一个变量而没有给它赋值,该变量将被赋值为其类型的零值。
数值类型的零值是 0 字符串类型的零值是空字符串 布尔类型的零值是 false …
示例:
1 |
|
输出:
1 |
|
短变量声明
如果你声明变量时就知道它的初始值是什么,那么更具有代表性的是使用短变量声明。你不必很明确地声明变量的类型并在之后使用=为其赋值。
1 |
|
“变量名 = 值”是不允许的,下面是错误示例:
1 |
|
命名规则
Go 有一套简单的规则,适用于变量、函数和类型的名称:
- 名称必须以字母开头,并且可以有任意数量的额外的字母和数字。
- 如果变量、函数或类型的名称以大写字母开头,则认为它是导出的,可以从当前包之外的包访问它。 (这就是为什么 fmt.Println 中的 P 是大写的:这样它就可以在 main 包或任何其他包中使用。) 如果变量/函数/类型的名称是以小写字母开头的,则认为该名称是未导出的,只能在当前包中使用。
重复声明同一变量名的变量
在同一作用域中重复声明同一变量名的变量是不允许的。
示例一:
1 |
|
编译错误:
1 |
|
示例二:
1 |
|
编译错误:
1 |
|
但如果短变量声明中至少有一个变量名是新的,这是允许的。新变量名被视为声明,而现有的名字被视为赋值。
示例:
1 |
|
输出:
1 |
|
如果不使用短变量声明会是怎么样呢?
示例:
1 |
|
编译错误:
1 |
|