在go语言源码测试文件中,存在这个一个测试用例:
package main
const (
A int = 1
B byte; // ERROR "type without expr|expected .=."
)
const LargeA = 1000000000000000000
const LargeB = LargeA * LargeA * LargeA
const LargeC = LargeB * LargeB * LargeB // GC_ERROR "constant multiplication overflow"
const AlsoLargeA = LargeA << 400 << 400 >> 400 >> 400 // GC_ERROR "constant shift overflow"
最后两个的错误能够理解,但是不知道这个范围是什么,这些常量表达式在什么范围里是合法的,不会出现溢出? 我能在哪里获得这些信息?
有疑问加站长微信联系(非本文作者)