2、变量的声明

声明变量的一般形式是使用 var 关键字

变量声明

第一种,指定变量类型,声明后若不赋值,使用默认值0。

  1. var v_name v_type
  2. v_name = value
  3. package main
  4. import "fmt"
  5. func main() {
  6. var a int
  7. fmt.Printf(" = %d\n", a)
  8. }
  9. $go run test.go
  10. a = 0

第二种,根据值自行判定变量类型。

  1. var v_name = value

第三种,省略var, 注意 :=左侧的变量不应该是已经声明过的,否则会导致编译错误。

  1. v_name := value
  2. // 例如
  3. var a int = 10
  4. var b = 10
  5. c : = 10

例如:

  1. package main
  2. import "fmt"
  3. func main() {
  4. //第一种 使用默认值
  5. var a int
  6. fmt.Printf("a = %d\n", a)
  7. //第二种
  8. var b int = 10
  9. fmt.Printf("b = %d\n", b)
  10. //第三种 省略后面的数据类型,自动匹配类型
  11. var c = 20
  12. fmt.Printf("c = %d\n", c)
  13. //第四种 省略var关键字
  14. d := 3.14
  15. fmt.Printf("d = %f\n", d)
  16. }

多变量声明

  1. package main
  2. import "fmt"
  3. var x, y int
  4. var ( //这种分解的写法,一般用于声明全局变量
  5. a int
  6. b bool
  7. )
  8. var c, d int = 1, 2
  9. var e, f = 123, "liudanbing"
  10. //这种不带声明格式的只能在函数体内声明
  11. //g, h := 123, "需要在func函数体内实现"
  12. func main() {
  13. g, h := 123, "需要在func函数体内实现"
  14. fmt.Println(x, y, a, b, c, d, e, f, g, h)
  15. //不能对g变量再次做初始化声明
  16. //g := 400
  17. _, value := 7, 5 //实际上7的赋值被废弃,变量 _ 不具备读特性
  18. //fmt.Println(_) //_变量的是读不出来的
  19. fmt.Println(value) //5
  20. }