变量 = 变量名 + 值 + 数据类型

声明

单一变量

1、指定变量类型,声明后不赋值,go会自动给定默认值

  1. var n int

2、根据值,自行判定变量类型(类型推导)
变量声明时就直接赋值,可省略数据类型

  1. var n = 10.2

3、省略var,:= 左边的变量不应该是已经声明过的,否则会报错
短变量的声明和赋值

  1. name := 'xiao'

多变量声明

局部多变量声明

  1. // 同一种类型
  2. var n1, n2, n3 int
  3. fmt.Println("n1=", n1,"n2=", n2,"n3=", n3,) // n1= 0 n2= 0 n3= 0
  4. // 不同类型
  5. var num, name2, sex = 12, "xiao", true
  6. fmt.Println("num=", num,"name2=", name2,"sex=", sex,) // num= 12 name2= xiao sex= true
  7. // 类型推导
  8. a, b, c := 1, "str", false
  9. fmt.Println("a=", a,"b=", b,"c=", c,) // a= 1 b= str c= false

全局多变量声明

  1. var num1 = 100
  2. var num2 = 200
  3. var name3 = "tom"
  4. // 上面的写法可以简化成下面的, 注意没有,号
  5. var (
  6. x = 22
  7. y = 33
  8. z = "44"
  9. )
  10. fmt.Println("num1=", num1,"num2=", num2,"name3=", name3,) // num1= 100 num2= 200 name3= tom
  11. fmt.Println("x=", x,"y=", y,"z=", z,) // x= 22 y= 33 z= 44

赋值 使用

  1. package main
  2. import "fmt"
  3. // 全局变量声明
  4. var num1 = 100
  5. var num2 = 200
  6. var name3 = "tom"
  7. // 上面的写法可以简化成下面的, 注意没有,号
  8. // 全局多变量声明
  9. var (
  10. x = 22
  11. y = 33
  12. z = "44"
  13. )
  14. // non-declaration statement outside function body
  15. // 不使用var声明,只适用与函数内部,全局变量不行
  16. // test := "123132"
  17. // fmt.Println('test=', test)
  18. func main() {
  19. // 局部变量声明
  20. // 局部单一变量
  21. // 1、指定变量类型,声明后不赋值,go会自动给定默认值
  22. var i int
  23. i = 10
  24. fmt.Println("i=", i)
  25. // 2、根据值,自行判定变量类型(类型推导)
  26. var n = 10.2
  27. fmt.Println("n=", n)
  28. // 3、省略var,:= 左边的变量不应该是已经声明过的,否则会报错
  29. name := "xiao"
  30. fmt.Println("name=", name)
  31. // 局部多变量声明
  32. // 1、同一种类型
  33. var n1, n2, n3 int
  34. fmt.Println("n1=", n1, "n2=", n2, "n3=", n3)
  35. // 2、不同类型
  36. var num, name2, sex = 12, "xiao", true
  37. fmt.Println("num=", num, "name2=", name2, "sex=", sex)
  38. // 3、类型推导
  39. a, b, c := 1, "str", false
  40. fmt.Println("a=", a, "b=", b, "c=", c)
  41. // 全局变量打印
  42. fmt.Println("num1=", num1, "num2=", num2, "name3=", name3)
  43. fmt.Println("x=", x, "y=", y, "z=", z)
  44. }
  45. // syntax error: non-declaration statement outside function body
  46. // fmt.Println("x=", x, "y=", y, "z=", z)