常量是一个简单值的标识符,一旦定义不能改变,
常量中的值只能是布尔,数字型(整数型、浮点型和复数)和字符串型。
GO语言常量中不要全部大写,因为GO语言中的大小写是有含义的,比如首字母大写代表public
常量的定义:
//1、显式类型
const 常量名 类型 = 值
const path string = "/www/index.html"
//2、隐藏类型
const 常量名= 值
const path ="/www/index.html"
//3、多个常量的声明的几个方式
const a,b = "www","aaaa"
const (
a1, b1 = "a1", "b1"
)
const (
a2 = "a2"
b2 = "b2"
)
使用常量定义枚举类型:
GO语言中没有枚举类型的关键字但是可以通过常量+iota来实现
iota是golang语言的常量计数器,只能在常量的表达式中使用。
func enum() {
const (
Sunday = 0
Monday = 1
Tuesday = 2
Wednesday = 3
Thursday = 4
Friday = 5
Saturday = 6
)
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
}
使用iota常量计数
func enum() {
const (
Sunday = iota
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
)
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
}
//结果 0123456
每个常量iota都会计数
func enum() {
const (
Sunday = iota
_Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Monday
)
fmt.Println(Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday)
}
//结果0 7 2 3 4 5 6
iota更加复杂的用法
func space() {
const (
b = 1 << (10 * iota) //下面的都会使用这个公式
kb
mb
gb
tb
pb
)
fmt.Println(b, kb, mb, gb, tb, pb)
//结果
1 1024 1048576 1073741824 1099511627776 1125899906842624
}