介绍go的常量、枚举使用
// 常量,枚举
package main
import "fmt"
// 方法1
const a int = 10
// 方法2
const (
b int = 20
c float64 = 10 / 3.0
d int = a + b
)
// 方法3
const e, f int = 8, 9
const (
g int = 100
h //在常量中,如果没有赋值,则使用上一行的值,即 h = 100
i //这里也是等于100
)
const (
// 常量可以使用内置函数,如len()
j int = len("abc")
)
// 枚举,加iota表示,其值由0开始递增
const (
k = iota // 0
l // 1
m // 2
)
// 到下一个const关键字后iota归0,重新递增
const (
n = iota // 0
o // 1
p // 2
)
// 常量的访问范围
const (
// 下划线表示私有
_MAX_COUNT = 1000
// 小写的c表示私有
cTOTAL = 55
// 大写表示公有
SUM_AGE = 200
)
/*
偏门的,结果:
1
1024
1048576
*/
const (
KB = 1 << (iota * 10)
MB
GB
)
func main() {
fmt.Println(a) // 10
fmt.Println(b) // 20
fmt.Println(c) // 3.3333333333333335
fmt.Println(d) // 30
fmt.Println(e) // 8
fmt.Println(f) // 9
fmt.Println(g) // 100
fmt.Println(h) // 100
fmt.Println(i) // 100
fmt.Println(j) // 3
fmt.Println("以下是枚举:")
fmt.Println(k) // 0
fmt.Println(l) // 1
fmt.Println(m) // 2
fmt.Println(n) // 0
fmt.Println(o) // 1
fmt.Println(p) // 2
fmt.Println("以下是偏门的:")
fmt.Println(KB) // 1
fmt.Println(MB) // 1024
fmt.Println(GB) // 1048576
}