变量

Go语言里面定义变量有多种方式。

声明变量

语法:

  1. var name type
  2. var name1, name2 type
  3. // 声明后赋值
  4. name = typeValue
  5. name1, name2 = typeValue1, typeValue2

声明变量并初始化

语法:

  1. var name type = initialValue
  2. var name1, name2 type = initialValue1, initialValue2

类型推导

语法:

  1. var name = initialValue
  2. var name1, name2 = initialValue1, initialValue2

如果一个变量有初始值,Golang 将自动使用该初始值来推断该变量的类型。因此,如果一个变量有初始值,变量声明中的类型可以省略。

简短声明

语法:

  1. name := initialValue

对简短声明,有如下一些规则:

  1. 简短声明只能出现在函数体中;
  2. 简短声明要求必须给声明的每一个变量都提供初始值;
  3. 简短声明要求在 := 的左边必须至少有一个变量是新声明的。
  1. package main
  2. import "fmt"
  3. func main() {
  4. // 声明变量 a, b
  5. a, b := 20, 30
  6. fmt.Println("a is", a, "b is", b)
  7. // b 已经被声明, c 是新声明的变量,本条语句包含一个新声明的变量
  8. b, c := 40, 50
  9. fmt.Println("b is", b, "c is", c)
  10. // 重新赋值, 若为 b, c := 80, 90 则报错
  11. b, c = 80, 90
  12. fmt.Println("changed b is", b, "c is", c)
  13. }

注意

  • Go对于已声明但未使用的变量会在编译阶段报错
  • _ (下划线)是个特殊的变量名,任何赋予它的值都会被丢弃。

常量

语法:

  1. const constantName = value
  2. //如果需要,也可以明确指定常量的类型:
  3. const Pi float32 = 3.1415926

分组

  1. var (
  2. name1 type1
  3. name2 type2
  4. )
  5. var (
  6. name1 = initialValue1
  7. name2 = initialValue2
  8. )
  9. const (
  10. name1 = initialValue1
  11. name2 = initialValue2
  12. )