隐式转换规则
- 常量不支持溢出
- 常量不支持舍入
func main() {
const a = -1.23
x := int32(a) // error,常量不支持舍入,将a变为变量可以
fmt.Println(x)
const b = 255
var h = uint8(b + 1) //error,常量不支持溢出,将b更改为变量可以
fmt.Println(h)
}
- 类型不确定常量,值可以溢出其默认类型
const a = 1 << 64
const n int = 1 << 64 // error
func main() {
b := a >> 2
fmt.Println(b)
}
如果直接使用a 会报错