
上QQ阅读APP看书,第一时间看更新
2.4 有类型的常量与无类型的常量
常量可以是有类型的也可以是无类型的。有类型的常量与字面量非常相似:虽然没有自己的类型,但有默认类型,当不能确定其他类型时使用默认类型。有类型的常量只能赋值给类型相同的变量。
常量有无类型取决于常量的声明,如果要为一个可以用于多个数字类型的数字常量指定名称,请使用无类型的常量,这样会有更大的灵活性。在有些情况下,你需要强制常量是某个类型,比如希望使用iota创建一个枚举时,应该使用有类型的常量,详见7.2.7节。
无类型常量的声明如下:

由于x
此时的类型不确定,所以以下赋值操作都是合法的:

有类型常量的声明如下:

typedX
是一个有类型的常量(int
类型),并且只能使用int
类型的值对其赋值,如果使用其他类型的值(比如float64
)赋值,会产生编译错误:
