文章目录
- 变量介绍
- Go的简短形式`:=`声明
- 多变量声明
变量介绍
变量这个词来源于数学,类似方程中的x、y,代表的是存储在计算机中的值。这里主要介绍Go和其它编程语言不一样的地方,在前面我们提到过,Go是一门静态语言。静态语言区别动态语言一个重要的特性就是变量的类型不可变,一般是在声明的时候就指定类型,之后就不可修改它的类型,而动态语言可以随时修改变量的类型。Go的变量可以在声明的时候不指定类型而是直接赋值,Go会自动根据值判断变量的类型,比如:
var i = 1
当然这时
i
的类型(
int
)也就确定了之后不能修改
i
的类型。
也可以声明的时候指定类型:
var i int
这里面的
i
就是
int
类型。如果变量声明的时候没有给定初始值,那默认就是零值,比如:
var i intvar s stringfmt.Println(i)fmt.Println(s)
输出是:
0
这里string的零值是\”\”。bool类型的零值是false,以后讲到的指针类型零值是nil
Go的简短形式
:=
声明
上面介绍过,Go可以在变量定义的时候比指定类型,系统自动判断类型,那声明的变量的时候加上var是不是感觉有点多余了。Go可以用
:=
这种写法直接声明变量例如:
i := 5a := false
这时
i
就是
int
类型值为
5
,
a
就是
bool
类型值为
false
,需要注意的是它只能被用在函数中,不能全局的声明变量例如:
package mainimport \"fmt\"i := 1func main() {fmt.Println(i)}
这样是不行的。
还有就是相同的变量,在同一个代码块中只能这样被声明一次,第二次声明也是错误的例如:
package mainimport \"fmt\"func main() {i := 1i : = 2fmt.Println(i)}
这样也会报错。
多变量声明
多变量声明是指一次可以声明多个变量例如
var i, j, k inti, j, k = 0, 1, 2var m, n = 1, 2var a, b = 1, false
需要指出的是多个变量声明可以指定不通的类型例如上面
var a, b = 1, false
也支持
:=
形式的多变量声明
a, b := 1, false
只要
:=
左侧出现了新的变量就可以例如:
a, b := 1, falseb, c := false, 1