根据文档:int 是有符号整数类型,大小至少为 32 位。然而,它是一种独特的类型,而不是 int32 等类型的别名。但它没有说哪个平台或什么时候它会大于 int32。谁能给我更多详细信息吗?或者说处理它的源代码在哪里?我可以强制编译器将 int 转换为 64 位吗?我知道我可以使用 int64。这不是一个寻求最佳实践的问题。
2 回答
饮歌长啸
TA贡献1951条经验 获得超3个赞
Go 编程语言规范
数字类型
还有一组具有特定于实现的大小的预先声明的数字类型:
uint either 32 or 64 bits int same size as uint
的大小int取决于编译器编写者。对于主机来说,它通常是一个自然、有效的大小。例如,amd64 上为 64 位,386 架构上为 32 位。
例如,
package main
import (
"fmt"
"runtime"
"strconv"
)
func main() {
fmt.Println(runtime.GOARCH, strconv.IntSize)
}
输出:
$ uname -p
x86_64
$ go run intsize.go
amd64 64
$
红颜莎娜
TA贡献1842条经验 获得超12个赞
据推测, an 的大小int
是由实现定义的,这意味着它会根据操作系统和内核架构的不同而因平台而异。大多数编程语言(例如 C)都是这种情况。
如果您必须精确地拥有一个 64 位整数,那么该int64
类型就存在,这将保证您的整数中恰好有 64 位。与 、 等相同int32
。int16
否则,文档建议使用int
,因为编译器可以更轻松地优化代码。
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报
0/150
提交
取消