第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么 math.MaxInt64 被推斷為 int32?

為什么 math.MaxInt64 被推斷為 int32?

Go
寶慕林4294392 2022-05-18 14:34:47
嘗試為 GOARCH 386 進(jìn)行交叉編譯:package mainimport (    "fmt"    "math")func main() {    i := math.MaxInt64    fmt.Println(i)}建造:env GOARCH=386 go run main.go輸出:# command-line-arguments./sample.go:9:4: constant 9223372036854775807 overflows int為什么 vari被推斷為 int32 而不是 int64?這是一個(gè)眾所周知的錯(cuò)誤或 go lang 規(guī)范嗎?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

math.MaxInt64定義如下:


const (

    MaxInt64  = 1<<63 - 1

)

來自https://blog.golang.org/constants:


Go 中無類型常量的概念意味著所有數(shù)字常量,無論是整數(shù)、浮點(diǎn)、復(fù)數(shù),甚至是字符值,都存在于一種統(tǒng)一的空間中。當(dāng)我們將它們帶入變量、賦值和操作的計(jì)算世界時(shí),實(shí)際類型很重要。


通過強(qiáng)制編譯為 32 位架構(gòu),您將int數(shù)字的 go 默認(rèn)類型強(qiáng)制為顯式int32- 而在大多數(shù)現(xiàn)代 CPUint上,隱式為int64.


順便說一句,如果您明確使用類型int64(而不是推斷的int類型):


var i int64

i = math.MaxInt64

雖然這可能會為 32 位架構(gòu)“編譯” ,但它不會運(yùn)行:


GOARCH=386 go build -o too_big && ./too_big


./too_big: Bad CPU type in executable


查看完整回答
反對 回復(fù) 2022-05-18
  • 1 回答
  • 0 關(guān)注
  • 148 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號