Go语言学习指南:惯例模式与编程实践
上QQ阅读APP看书,第一时间看更新

2.4 有类型的常量与无类型的常量

常量可以是有类型的也可以是无类型的。有类型的常量与字面量非常相似:虽然没有自己的类型,但有默认类型,当不能确定其他类型时使用默认类型。有类型的常量只能赋值给类型相同的变量。

常量有无类型取决于常量的声明,如果要为一个可以用于多个数字类型的数字常量指定名称,请使用无类型的常量,这样会有更大的灵活性。在有些情况下,你需要强制常量是某个类型,比如希望使用iota创建一个枚举时,应该使用有类型的常量,详见7.2.7节。

无类型常量的声明如下:

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

有类型常量的声明如下:

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