猿问

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

Go Tour,第 13 页中,提供了以下内容:

MaxInt uint64     = 1<<64 - 1

当示例运行时,它会正确评估;我似乎无法理解为什么。

unit64据我所知,是 Go 中 int 的最大容器。同时,1<<64在表达式(例如 in fmt.Printf(1<<64))中使用时评估为异常- 即它不像在几种编程语言中那样为 0。尽管如此,当在赋值运算符的右侧使用时,它的评估结果很好。

我在这里缺少什么?


慕仙森
浏览 201回答 1
1回答

慕哥9229398

没关系,幻灯片 #15似乎解释了它:它是一个常量,因此“没有限制大小”(无论如何都不是 64 位)。我觉得很奇怪,但可以解释一下。
随时随地看视频慕课网APP

相关分类

Go
我要回答