根據文檔: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條經驗 獲得超13個贊
據推測, an 的大小int
是由實現定義的,這意味著它會根據操作系統和內核架構的不同而因平臺而異。大多數編程語言(例如 C)都是這種情況。
如果您必須精確地擁有一個 64 位整數,那么該int64
類型就存在,這將保證您的整數中恰好有 64 位。與 、 等相同int32
。int16
否則,文檔建議使用int
,因為編譯器可以更輕松地優化代碼。
- 2 回答
- 0 關注
- 129 瀏覽
添加回答
舉報
0/150
提交
取消