根据文档:
int是有符号整数类型,其大小至少为32位。但是,它是一个独特的类型,而不是int32的别名。
但是它没有说哪个平台或什么时候会比int32大。
谁能给我更多细节吗?还是在哪里处理它的源代码?我可以强制编译器将int设置为64位吗?
我知道我可以使用int64。这不是要求最佳实践的问题。
一个int实现的大小大概是由实现定义的,这意味着它会因平台而异,具体取决于操作系统和内核体系结构。大多数编程语言(例如C)就是这种情况。
如果必须精确地有一个64位整数,那么int64类型就存在了,它将保证整数中恰好有64位。同样用int32,int16等。否则,文档建议使用int,因为编译器然后可以更容易地优化代码。
还有一组预先声明的数字类型,具有特定于实现的大小:
Run Code Online (Sandbox Code Playgroud)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)
}
Run Code Online (Sandbox Code Playgroud)
输出:
$ uname -p
x86_64
$ go run intsize.go
amd64 64
$
Run Code Online (Sandbox Code Playgroud)
游乐场:https : //play.golang.org/p/wyNm2Hyzl6W
输出:
amd64p32 32
Run Code Online (Sandbox Code Playgroud)
Go继承自C。
C编程语言,第二版,Brian W. Kernighan和Dennis Ritchie
int一个整数,通常反映主机上整数的自然大小
| 归档时间: |
|
| 查看次数: |
106 次 |
| 最近记录: |