一.静态语言和动态语言

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

    二.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语言要求变量声明后至少使用一次(赋值不属于使用)

四.单个变量声明及赋值

  • 先声明后赋值(声明后开辟内存,不同类型变量都有不同初值) ```go //语法: //1. 声明 var 变量名 类型 //2. 赋值 变量名=值

//示例: var smallming string smallming = “英文名”

  1. - 声明并赋值(此方式不建议)
  2. ```go
  3. //语法:
  4. var 变量名 类型 = 值
  5. //示例
  6. var smallming string = "英文名"
  • 声明并赋值(省略类型,变量类型取决于值的类型) ```go //语法: var 变量名 = 值

//示例: var smallming = “英文名”

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

五.声明多个变量和赋值

  • 先声明后赋值

    1. func main() {
    2. var a, b, c int
    3. a, b, c = 1, 2, 3
    4. fmt.Println(a, b, c)
    5. }
  • 声明时赋值

    1. func main() {
    2. var a, b, c, d = 1, 2, 3, false
    3. fmt.Println(a, b, c, d)
    4. }
  • 声明并赋值,推荐方式

    1. func main() {
    2. var (
    3. a = 1
    4. b = true
    5. c = "测试"
    6. )
    7. fmt.Println(a, b, c)
    8. }
  • 使用短变量给多个变量赋值时,必须要保证至少有个变量是没有声明的

    1. func main() {
    2. var (
    3. a = 1
    4. b = true
    5. c = "测试"
    6. )
    7. //短变量操作多个值时只要保证里面至少有一个新变量
    8. b, c, d := false, "smallming", 3
    9. fmt.Println(a, b, c, d)
    10. }