这个程序在我的机器上运行良好(go1.2.1 linux/amd64):
package main
import "fmt"
const bigint = 1<<62
func main() {
fmt.Println(bigint)
}
但是使用 go 游乐场,它会出现溢出错误 - http://play.golang.org/p/lAUwLwOIVR
似乎我的构建配置了 64 位整数常量,操场配置了 32 位。
但是规范说实现必须为常量提供至少 256 位的精度?
另请参阅我的另一个问题中的代码——扫描仪标准包有代码:
const GoWhitespace = 1<<'\t' | 1<<'\n' | 1<<'\r' | 1<<' '
由于空间是 32,这在 32 位操场上根本不起作用。
怎么会这样?
相关分类