本篇文章主要是Golang中的变量,常量声明,使用细节
常量 🔗
- 声明方式:使用关键字const定义,只能定义基础类型:数值类型,字符串,布尔类型,常量声明后不能修改,所以声明时就必须赋值
//定义 两种方式
const c1 string = "你好"
const c2 = "你好"
- 常量的值可以涉及计算,但只能定义在编译期间中确定的数据,函数返回值不能在编译阶段确定,所以不能作为常量值,但内置函数可以
const a int = 1+1 //可以
const b int = getNum()//不可以
- 数字型的常量没有大小和符号
- 可以并行赋值
const a,b,c = 1,2,3
const (
c,d = 4,5
)
- 枚举
- 每次使用const都会重置iota为0
- 默认情况iota的值等于在const中排序的位置
const (
man = 0
woman = 1
)
//还可以使用iota作为枚举值
const (
a = iota // 0
b = iota // 1
c = iota // 2
d = 8
e = iota // 4
)
//简写,简写时,后面的常量会默认使用上一个表达式
const (
a = iota
b
c
)
变量 🔗
- 声明方式:变量的声明方式有多种,下面是常用的几种
//var identifier type
var a int = 1
var a = 1//go会根据值自动推导类型,但类似与int64这类类型不能通过自动推导获取到
var (
a int64 = 1
b = 2
)
//赋值操作符,短声明:= 类型也是自动推导,但是只能函数体内才能使用
c:=2
- 类型零值:int为0,float为0.0,字符串为空字符串,指针为nil,布尔值为false
- 不能重复初始化同一个名称一样的变量
- 不定义不能使用,定义了必须使用
- 并行赋值
var a,b,c = 1,2,"3"//不指定类型是可以混用
a,b,c := 1,2,"3"//短声明同样适用
var a,b,c int = 1,2,"3"//会出错
- 空白标识符,一般用来接收方法或者函数多个返回值,但是某些值不需要处理时
a,_=1,2//2将被抛弃
如有遗漏欢迎批评指正