变量定义的几种方式:
    (1)使用var关键字来定义
    var a, b, c bool
    var s1, s2 string = “hello”, “world”
    var (
    aa = 3
    ss = “kkk”
    bb = true
    )
    使用var关键字的定义方式可以放在函数内,也可以放在函数外(包内)。
    (2)让编译器自动决定类型
    var a, b, i, s1, s2 = true, false, 3, “hello”, “world”
    (3)使用:=定义变量(只能在函数内使用,不能用在函数外(包内))
    a, b, i, s1, s2 := true, false, 3, “hello”, “world”

    1. package main
    2. import "fmt"
    3. // 在函数外(包内部)定义变量,其作用域为包内部
    4. var aa = 3
    5. var (
    6. ss = "kkk"
    7. bb = true
    8. )
    9. // 在函数内定义变量,其作用域为函数内部
    10. // 定义变量时可以不指定初始值
    11. func variableZeroValue(){
    12. var a int
    13. var s string
    14. fmt.Printf("%d %q\n", a, s)
    15. // 0 ""
    16. }
    17. // 定义的同时初始化;可以同时定义多个变量
    18. func variableInitialValue(){
    19. var a, b int = 3, 4
    20. var s string = "abc"
    21. fmt.Println(a, b, s)
    22. // 3 4 abc
    23. }
    24. // 让编译器自动推断变量类型
    25. func variableTypeDeduction(){
    26. var a, b, c, s = 3, 4, true, "def"
    27. fmt.Println(a, b, c, s)
    28. // 3 4 true def
    29. }
    30. // 使用:=来定义变量(更常用)
    31. func variableShorter(){
    32. a, b, c, s := 3, 4, true, "def"
    33. b = 5
    34. fmt.Println(a, b, c, s)
    35. // 3 5 true def
    36. }
    37. func main(){
    38. variableZeroValue()
    39. variableInitialValue()
    40. variableTypeDeduction()
    41. variableShorter()
    42. fmt.Println(aa, ss, bb)
    43. // 3 kkk true
    44. }

    变量定义要点回顾:
    ①变量类型写在变量名之后
    ②编译器可推测变量类型
    ③没有char, 只有rune(32位)
    ④原生支持复数类型