溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

golang為什么不可以隱式轉(zhuǎn)換

發(fā)布時(shí)間:2020-06-16 14:24:02 來源:億速云 閱讀:626 作者:鴿子 欄目:編程語言

這種功能帶來的隱患比便利要多,Golang中Int和int64都不是一個(gè)類型,不能隱式轉(zhuǎn)換。

Go 編程語言是一個(gè)開源項(xiàng)目,它使程序員更具生產(chǎn)力。

Go 語言具有很強(qiáng)的表達(dá)能力,它簡(jiǎn)潔、清晰而高效。得益于其并發(fā)機(jī)制,用它編寫的程序能夠非常有效地利用多核與聯(lián)網(wǎng)的計(jì)算機(jī),其新穎的類型系統(tǒng)則使程序結(jié)構(gòu)變得靈活而模塊化。

Go代碼編譯成機(jī)器碼不僅非常迅速,還具有方便的垃圾收集機(jī)制和強(qiáng)大的運(yùn)行時(shí)反射機(jī)制。 它是一個(gè)快速的、靜態(tài)類型的編譯型語言,感覺卻像動(dòng)態(tài)類型的解釋型語言。

Go語言是靜態(tài)類型語言,因此變量(variable)是有明確類型的,編譯器也會(huì)檢查變量類型的正確性。在數(shù)學(xué)概念中,變量表示沒有固定值且可改變的數(shù)。但從計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)角度來看,變量是一段或多段用來存儲(chǔ)數(shù)據(jù)的內(nèi)存。

聲明變量的一般形式是使用 var 關(guān)鍵字:

var name type

其中,var 是聲明變量的關(guān)鍵字,name 是變量名,type 是變量的類型。

需要注意的是,Go語言和許多編程語言不同,它在聲明變量時(shí)將變量的類型放在變量的名稱之后。

這樣做的好處就是可以避免像C語言中那樣含糊不清的聲明形式,例如:int* a, b; 。其中只有 a 是指針而 b 不是。如果你想要這兩個(gè)變量都是指針,則需要將它們分開書寫。

而在 Go 中,則可以和輕松地將它們都聲明為指針類型:

var a, b *int

Go語言的基本類型有:

bool
string
int、int8、int16、int32、int64
uint、uint8、uint16、uint32、uint64、uintptr
byte // uint8 的別名
rune // int32 的別名 代表一個(gè) Unicode 碼
float32、float64
complex64、complex128

當(dāng)一個(gè)變量被聲明之后,系統(tǒng)自動(dòng)賦予它該類型的零值:int 為 0,float 為 0.0,bool 為 false,string 為空字符串,指針為 nil 等。所有的內(nèi)存在 Go 中都是經(jīng)過初始化的。

變量的命名規(guī)則遵循駱駝命名法,即首個(gè)單詞小寫,每個(gè)新單詞的首字母大寫,例如:numShips 和 startDate 。

變量的聲明有幾種形式,通過下面幾節(jié)進(jìn)行整理歸納。

標(biāo)準(zhǔn)格式

Go語言的變量聲明的標(biāo)準(zhǔn)格式為:

var 變量名 變量類型

變量聲明以關(guān)鍵字 var 開頭,后置變量類型,行尾無須分號(hào)。

以上就是golang不能隱式轉(zhuǎn)換嗎的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI