什么是变量
对于有编程基础的人来说,变量相当的熟悉了,看一下学术介绍:
变量指定了某 存储单元
(Memory Location)的名称,该存储单元会存储 特定类型
的值。
提示
接下来的内容要在脑海中时刻提示自己:Go是一门强类型的语言。
变量声明
声明单个变量
语法上为: var name type
,示例:
var age int点击复制复制失败已复制
该语句声明了一个 int
类型的变量,命名为 age
。此语句仅为声明语句,并未赋值,那么 Go
会自动将其初始化,赋值该变量类型的零值( Zero Value
)
Note
int
类型的零值即为 0
变量声明之后,即可赋值为本类型的任何值,示例:
var age int age = 25 age = 30点击复制复制失败已复制
声明单个变量并初始化
声明变量的同时可以给定初始值。语法上为: var name type = initialValue
,示例:
var age int = 25点击复制复制失败已复制
类型推断
Go
是一门具有类型的语言,因此很多时候可以借用类型推断功能来自动推断变量的类型,这样就能减少代码量,并让代码结构更加清晰。
语法上为 var name = initialValue
,示例:
var age = 25点击复制复制失败已复制
声明多个变量
这个功能很多语言都支持, Go
也实现了,通过一条语句声明多个变量可以有效的减少代码量,语法上为: var name1, name2 type = initialValue1, initialValue2
,示例:
var width, height int = 100, 50点击复制复制失败已复制
当然,也可以只声明,不赋值,示例如下:
var width, height int点击复制复制失败已复制
这样得到的变量会自动赋值为本类型的零值,上述代码中, width
和 height
变量即会自动赋值为 0
如果想要在一个语句中声明不同类型的变量,语法需要进行一定的调整,语法如下:
var ( name1 = initialValue, name2 = initialValue, name3 type )点击复制复制失败已复制
示例如下:
var ( name = "iricbing", age = 25, height int )点击复制复制失败已复制
简短声明
这个纯粹就是为了简化写法的,当然,这种简化的声明反而更深的人心,毕竟程序员都是以“懒惰”出名的嘛。简短声明采用 :=
操作符来实现,语法为:
name := initialValue or name1, name2 := initialValue1, initialValue2点击复制复制失败已复制
这个操作符有一个前提: :=
操作符左边的所有变量都有初始值,并且左边至少有一个变量是未被声明的!
Note
很好理解,如果有的变量没有初始值,那还类型推断个毛线啊,又不是 JavaScript
,第二句也好解释,变量都被声明过了,那不就成赋值操作符( =
)了嘛,就不是声明了。