一.静态语言和动态语言

  • 静态类型语言和强类型语言是同一个意思,表示在编译期就确定了类型,而且类型是不可以改变的
  • 动态类型语言和弱类型语言是同一个意思,表示在运行过程中才能确定,且内容是什么类型变量类型跟随变化

二.Go语言变量简介

  • Go语言和其他语言一样都有基本存储容器.可以存储一个或多个值在程序中,方便程序中多次使用容器中内容,这个容器称为:变量
  • Go语言虽然是静态类型语言,但是支持动态类型语言语法,因为Go语言希望程序员少声明变量,增加GC效率

三.变量命名规则

  • 以字母或下划线开头(Go语言中多不以_开头)

  • 后面可以是任意数量的字符、数字和下划线

  • 区分大小写

  • 不能是关键字(关键字具备特定含义),下面是Go语言的关键字

    关键字如下
    break default func interface select
    case defer go map struct
    chan else goto package switch
    const fallthrough if range type
    continue for import return var
  • 可以是保留字,但是建议不使用保留字做为变量名,下面是Go语言的保留字

    保留字如下
    true false iota nil int
    int8 int16 int32 int64 unit
    unit8 unit16 unit32 unitptr float32
    float64 complex128 complex64 bool byte
    rune string error make len
    cap new append copy close
    deletecomplex real imag panic
    recover
  • 在同一范围内不允许出现同名变量

  • Go语言要求变量声明后至少使用一次(赋值不属于使用)

四.单个变量声明及赋值

  • 先声明后赋值(声明后开辟内存,不同类型变量都有不同初值)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //语法:
    //1. 声明
    var 变量名 类型
    //2. 赋值
    变量名=值

    //示例:
    var smallming string
    smallming = "英文名"
  • 声明并赋值(此方式不建议)
    1
    2
    3
    4
    5
    //语法:
    var 变量名 类型 = 值

    //示例
    var smallming string = "英文名"
  • 声明并赋值(省略类型,变量类型取决于值的类型)
    1
    2
    3
    4
    5
    //语法:
    var 变量名 = 值

    //示例:
    var smallming = "英文名"
  • 短变量(只能在函数内使用)
    1
    2
    3
    4
    5
    //语法:
    变量名 := 值

    //示例:
    smallming := "英文名"

五.声明多个变量和赋值

  • 先声明后赋值
1
2
3
4
5
func main() {
var a, b, c int
a, b, c = 1, 2, 3
fmt.Println(a, b, c)
}
  • 声明时赋值
1
2
3
4
func main() {
var a, b, c, d = 1, 2, 3, false
fmt.Println(a, b, c, d)
}
  • 声明并赋值,推荐方式
1
2
3
4
5
6
7
8
func main() {
var (
a = 1
b = true
c = "测试"
)
fmt.Println(a, b, c)
}
  • 使用短变量给多个变量赋值时,必须要保证至少有个变量是没有声明的
1
2
3
4
5
6
7
8
9
10
func main() {
var (
a = 1
b = true
c = "测试"
)
//短变量操作多个值时只要保证里面至少有一个新变量
b, c, d := false, "smallming", 3
fmt.Println(a, b, c, d)
}