Go语言变量与常量
Go语言变量
// 常规声明
var identifier type
// 类型推导
var name = "Tom"
// 省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误
// 使用变量的首选形式,但是它只能被用在函数体内,而不可以用于全局变量的声明与赋值。使用操作符 := 可以高效地创建一个新的变量,称之为初始化声明。
age := 18
// _抛弃符(匿名变量)
// 匿名变量不会占用命名空间,不会分配内存,所以匿名变量之间不会存在重复声明问题
Go语言常量
// 常规声明
const identifier [type] = value
// 显示声明
const name string = "Tom"
// 隐式声明
const age = 10
// 批量声明常量时,如果某一行声明后没有赋值,默认和上一行一致
/*常量的用途*/
// 1. 作为全局常量,不可被改变
// 2. 用作枚举
const (
Unknown = 0
Female = 1
Male = 2
)
// iota: 常量计数器,可以认为是一个可以被编译器修改的常量
// iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
const (
a = iota //0
b //1
c //2
d = "ha" //独立值,iota += 1
e //"ha" iota += 1
f = 100 //iota +=1
g //100 iota +=1
h = iota //7,恢复计数
i //8
)
// iota举例
// iota没遇到一个conts,其值变为0
// 一个const中,每加一行,iota值加一
const(
d1, d2 = iota + 1, iota + 2 // d1 = 1, d2 = 2
d3, d4 = iota + 1, iota + 2 // d3 = 2, d4 = 4
)
// itoa实用举例
const(
_ = iota // 0丢弃
KB = 1 << (10 * iota) // 1左移10位变为 1^10
MB = 1 << (10 * iota) // 1左移20位变为 1^20
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)