03.常量与枚举
定义常量
不需要像其他语言一样大写常量变量名,一定要赋值
func consts() { const filename = "test.txt" const a, b = 3, 4 var c int c = int(math.Sqrt(a*a + b*b)) fmt.Println(filename, c) }
也可包内定义,所有函数都可用
//也可包内定义,所有函数都可用 const filename = "test.txt" func consts() { const a, b = 3, 4 var c int c = int(math.Sqrt(a*a + b*b)) fmt.Println(filename, c) }
可定义到一个组内
func consts() { const ( filename = "test.txt" a, b = 3, 4 ) var c int c = int(math.Sqrt(a*a + b*b)) fmt.Println(filename, c) }
特殊的常量--枚举类型
常规写法
func enums() { const ( java = 0 python = 1 golang = 2 ) fmt.Println(java, python, golang) }
可以使用 iota 简化,实现自增
func enums() { const ( java= iota python golang ) fmt.Println(java, python, golang) }
运行结果:
复杂点的用法
func enums() { // b, kb, mb, gb, tb, pb const ( b = 1 << (10 * iota) kb mb gb tb pb ) fmt.Println(b, kb, mb, gb, tb, pb) }