1.变量

1.1变量声明

  1. //1、单变量声明,类型放在变量名之后,可以为任意类型
  2. var 变量名 类型
  3. var v1,v2,v3 string //多变量同类型声明
  4. //2、多变量声明
  5. var {
  6. v1 int
  7. v2 []int
  8. }

1.2变量初始化

  1. //1、使用关键字var,声明变量类型并赋值
  2. var v1 int=10
  3. //2、使用关键字var,直接对变量赋值,go可以自动推导出变量类型
  4. var v2=10
  5. //3、直接使用“:=”对变量赋值,不使用var,两者同时使用会语法冲突,推荐使用
  6. v3:=10

1.3变量赋值

  1. //1、声明后再变量赋值
  2. var v int
  3. v=10
  4. //2、多重赋值,经常使用在函数的多返回值中,err,v=func(arg)
  5. ij=j,i //两者互换,并不需要引入中间变量

1.4匿名变量

  1. //Go中所有声明后的变量都需要调用到,当出现函数多返回值,并且部分返回值不需要使用时,可以使用匿名变量丢弃该返回值
  2. func GetName()(firstName,lastName,nickName string){
  3. return "May","Chan","Make"
  4. }
  5. _,_,nickName:=GetName() //使用匿名变量丢弃部分返回值

2.常量

​ Go语言中,常量是编译时期就已知且不可变的值,常量可以是数值类型(整型、浮点型、复数类型)、布尔类型、字符串类型。

2.1字面常量

  1. //字面常量(literal)指程序中硬编码的常量
  2. 3.14
  3. foo
  4. true

2.2常量定义

  1. //1、可以限定常量类型,但非必需
  2. const Pi float64 = 3.14
  3. //2、无类型常量和字面常量一样
  4. const zero=0.0
  5. //3、多常量赋值
  6. const(
  7. size int64=1024
  8. eof=-1
  9. )
  10. //4、常量的多重赋值,类似变量的多重赋值
  11. const u,v float32=0,3
  12. const a,b,c=3,4,"foo" //无类型常量的多重赋值
  13. //5、常量赋值是编译期行为,可以赋值为一个编译期运算的常量表达式
  14. const mask=1<<3

2.3预定义常量

  1. //预定义常量:true、false、iota
  2. //iota:可修改常量,在每次const出现时被重置为0,在下一个const出现前,每出现一次iota,其代表的值自动增1。
  3. const( //iota重置为0
  4. c0=iota //c0==0
  5. c1=iota //c1==1
  6. c2=iota //c2==2
  7. )
  8. //两个const赋值语句一样可以省略后一个
  9. const( //iota重置为0
  10. c0=iota //c0==0
  11. c1 //c1==1
  12. c2 //c2==2
  13. )

2.4枚举

枚举指一系列相关常量。

  1. const(
  2. Sunday=iota //Sunday==0,以此类推
  3. Monday
  4. Tuesday
  5. Wednesday
  6. Thursday
  7. Friday
  8. Saturday //大写字母开头表示包外可见
  9. numberOfDays //小写字母开头表示包内私有
  10. )