常量
常量,一经定义不可改变的量,当出现不需要被更改的数据时,应该使用常量进行储存,从语法角度看,使用常量可以保证数据,在整个运行期间内,不会被更改
常量的值仅仅支持,基础类型,字符串,字符,整型,浮点,布尔
package main
import (
"fmt"
"math"
)
func consts() {
const (
// 类型可以通过值推导出来,例如这个 filename 就是一个字符串
filename = "abc.txt"
a, b = 3, 4
)
var c int
// 常量没有定义类型的情况下,其数值可作为各种类型使用
c = int(math.Sqrt(a*a + b*b))
fmt.Println(filename, c)
}
func main() {
consts()
}
枚举
其实Golang并没有enum,但是可以使用 const和iota 来模拟枚举
package main
import (
"fmt"
)
func enums() {
const (
// iota 初始化后会自动递增
c = iota
_
java
php
javascript
)
const (
b = 1 << (10 * iota)
kb
mb
gb
tb
pb
)
// 0 2 4 3
fmt.Println(c, java, javascript, php)
// 1 1024 1048576 1073741824 1099511627776 1125899906842624
fmt.Println(b, kb, mb, gb, tb, pb)
}
func main() {
enums()
}