变量声明
常见的变量声明形式:
var a string
var a string = "xiaofeng"
var a = "xiaofeng"
var (
a string
b int
)
var (
a string = "xiaofeng"
b int = 22
)
// 这种短变量声明只能在函数内部使用
a := "xiaofeng"
包级变量(package variable)
在package级别可见的变量。如果是导出变量,则该包级变量也可以被视为全局变量。
包级变量只能使用带有var关键字的变量声明形式。
声明并同时显示初始化
// 1.
var a = 99
var b = 99.99
// 2.
var a int32 = 99
var b float32 = 99.99
// 3.
var a = int32(99)
var b = float32(99.99)
从声明一致性的角度出发,Go语言官方更推荐第三种,这样就统一了接受默认类型和显示指定类型两种声明形式。尤其是在将这些变量放在一个var块中声明时,更青睐这样的形式:
var (
a = 99
b = float32(99.99)
)
声明但延迟初始化
对于声明时并不显示初始化的包级变量,使用最基本的声明形式:
var a int32
var b float64
声明聚类
也就是将同一类的变量声明放在一个var块中。
例如将显示初始化的变量声明放在一个var块中,将延迟初始化的变量声明放在一个var块中。
局部变量(local variable)
函数或方法体内声明的变量,仅在函数或方法体内可见。
与包级变量相比,局部变量多了一种短变量声明形式,这也是局部变量采用最多的一种声明形式。
局部变量声明注意两点:
- 对于延迟初始化的局部变量声明,采用带有var关键字的声明形式
- 对于声明切显示初始化的局部变量,建议使用短变量声明形式