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

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

隱式類型轉(zhuǎn)換常量與變量

隱式類型轉(zhuǎn)換常量與變量

Go
慕萊塢森 2023-04-24 16:58:54
我遇到過這樣一種情況,我在常量中有一些整數(shù)值并將其與math.Pi常量相乘,如下所示:func main() {    const a = 5    fmt.Printf("%v", a*math.Pi)}在執(zhí)行時(shí),它給出以下結(jié)果:15.707963267948966但是,當(dāng)我將常量更改為變量 ( variable a)時(shí),如下所示:func main() {    a := 5    fmt.Printf("%v", a*math.Pi)}編譯時(shí)出現(xiàn)以下錯(cuò)誤:constant 3.14159 truncated to integer據(jù)我所知,隱式數(shù)字類型轉(zhuǎn)換在表達(dá)式的所有操作數(shù)都是常量時(shí)有效,但在其中任何一個(gè)變量時(shí)無效。但是為什么會(huì)這樣呢?
查看完整描述

1 回答

?
慕標(biāo)琳琳

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

它的發(fā)生是因?yàn)?Go 的無類型常量。在這兩種情況下,您都沒有明確指定類型。

在第一種情況下,您正在定義一個(gè)無類型常量(您也可以使用 定義一個(gè)有類型常量const a float64 = 5)。對(duì)于無類型常量,只有在需要類型的上下文中使用時(shí)才會(huì)推斷出類型——即當(dāng)您將它與 math.Pi 相乘時(shí),編譯器將“猜測(cè)”您想要在那里有一個(gè)浮點(diǎn)數(shù),以及所有內(nèi)容工作正常。

在第二種情況下,一個(gè)變量當(dāng)然必須有一個(gè)類型,所以類型推斷發(fā)生在聲明變量的時(shí)候,因?yàn)槟闶褂昧恕?”,編譯器將“推斷”出 int,并且將 int 和 float 相乘是在圍棋中不可能。您可以使用 ega:=5.0var a float64 = 5將 a 聲明為 float64,那么此代碼也可以正常工作。


查看完整回答
反對(duì) 回復(fù) 2023-04-24
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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