8.3. 常量
Go语言中的常量可以没有固定类型(untyped)。我们可以用const和一个 untyped类型的初始值来 定义untyped常量。如果是untyped常量, 那么常量在使用的时候会根据上下文自动进行隐含的类型转换。 这样,可以更自由的使用untyped常量。
var a uint
f(a + 1) // untyped numeric constant "1" becomes typed as uint
untyped类型常量的大小也没有限制。只有在最终使用的地方才有大小的限制。
const huge = 1 << 100
f(huge >> 98)
Go没有枚举类型(enums)。作为代替,可以在一个独立的const区域中使用 iota来生成递增的值。如果const中,常量没有初始值则会 用前面的初始化表达式代替。
const (
red = iota // red == 0
blue // blue == 1
green // green == 2
)