变量声明

常见的变量声明形式:

  1. var a string
  2. var a string = "xiaofeng"
  3. var a = "xiaofeng"
  4. var (
  5. a string
  6. b int
  7. )
  8. var (
  9. a string = "xiaofeng"
  10. b int = 22
  11. )
  12. // 这种短变量声明只能在函数内部使用
  13. a := "xiaofeng"

包级变量(package variable)

在package级别可见的变量。如果是导出变量,则该包级变量也可以被视为全局变量。

包级变量只能使用带有var关键字的变量声明形式。

声明并同时显示初始化

  1. // 1.
  2. var a = 99
  3. var b = 99.99
  4. // 2.
  5. var a int32 = 99
  6. var b float32 = 99.99
  7. // 3.
  8. var a = int32(99)
  9. var b = float32(99.99)

从声明一致性的角度出发,Go语言官方更推荐第三种,这样就统一了接受默认类型和显示指定类型两种声明形式。尤其是在将这些变量放在一个var块中声明时,更青睐这样的形式:

  1. var (
  2. a = 99
  3. b = float32(99.99)
  4. )

声明但延迟初始化

对于声明时并不显示初始化的包级变量,使用最基本的声明形式:

  1. var a int32
  2. var b float64

声明聚类

也就是将同一类的变量声明放在一个var块中。
例如将显示初始化的变量声明放在一个var块中,将延迟初始化的变量声明放在一个var块中。

局部变量(local variable)

函数或方法体内声明的变量,仅在函数或方法体内可见。

与包级变量相比,局部变量多了一种短变量声明形式,这也是局部变量采用最多的一种声明形式。

局部变量声明注意两点:

  • 对于延迟初始化的局部变量声明,采用带有var关键字的声明形式
  • 对于声明切显示初始化的局部变量,建议使用短变量声明形式