变量使用入门
变量是几乎所有编程语言中最基本的组成元素。从本质上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。
由于 Go 语言是强类型静态语言,所以变量声明与赋值方式与 PHP/Python/JavaScript 等动态原因相比有很大的区别。
变量声明和命名规则
对于纯粹的变量声明,Go 语言引入了关键字 var
,并且将类型信息放在变量名之后,此外,变量声明语句不需要使用分号作为结束符(实际上,所有的 Go 语句都不需要分号作为结束符,这一点和 JavaScript/Python 很像),比如我们要声明一个类型为 int 的变量 v1
,示例如下:
var v1 int
相应的,PHP 是动态语言(昵称「鸭子类型」),变量在声明时没有类型之说,变量类型是在运行时动态判断的,不需要关键字 var
修饰,而是以 $
作为变量名前缀实现类似的效果,也没有这种纯粹的声明语句(类的成员变量除外),因为 Go 语言中这种纯粹的声明语句用于定义变量类型,PHP 这么做则毫无意义。
var
关键字的另一种用法是可以将若干个需要声明的变量放置在一起,免得程序员需要重复写 var
关键字,如下所示:
var (
v1 int
v2 string
)
此外,Go 语言支持多种数据类型,关于数据类型,学院君将在后续教程中详细介绍,这里先了解下即可:
var v1 int // 整型
var v2 string // 字符串
var v3 bool // 布尔型
var v4 [10]int // 数组,数组元素类型为整型
var v5 struct { // 结构体,成员变量 f 的类型为64位浮点型
f float64
}
var v6 *int // 指针,指向整型
var v7 map[string]int // map(字典),key为字符串类型,value为整型
var v8 func(a int) int // 函数,参数类型为整型,返回值类型为整型
需要注意的是,变量在声明之后,系统会自动将变量值初始化为对应类型的零值,比如上述 v1
的值