Go Tour例子:怎么没有溢出?

时间:2013-07-12 16:28:54

标签: variables types go

Go Tour, page 13中,会出现以下内容:

MaxInt uint64     = 1<<64 - 1

正确评估示例运行时的情况;我似乎无法理解为什么。

据我所知,

unit64是Go中int的最大容器。同时,1<<64在表达式中使用时(例如在fmt.Printf(1<<64)中)评估异常 - 也就是说它不像在几种编程语言中那样是0。但是,当在赋值运算符的右侧使用时,它的计算结果很好。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

没关系,slide #15似乎解释了它:它是一个常数,因此“没有有限的大小”(不管怎么说都不是64位)。我觉得很奇怪,但是可以解释一下。