您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“Go語(yǔ)言變量與常量如何聲明與使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Go語(yǔ)言變量與常量如何聲明與使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。
什么是變量?變量是一塊可以隨時(shí)存放數(shù)據(jù)的內(nèi)存區(qū)域。在我們申請(qǐng)這塊內(nèi)存區(qū)域(聲明變量)時(shí),需要指定變量名以及變量的數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)型用于說(shuō)明變量可以存放什么值。
Go是強(qiáng)類(lèi)型語(yǔ)言,因此Go的變量需要先聲明再使用,且聲明后不可以改變其數(shù)據(jù)類(lèi)型。
變量名必須以字母或下劃線開(kāi)頭。
變量名區(qū)分大小寫(xiě),比如Version
和version
是兩個(gè)不同的變量。
不能用關(guān)鍵字(25個(gè))和保留字(37個(gè))給變量命名。
Go語(yǔ)言變量有兩種聲明方式,一種是標(biāo)準(zhǔn)的變量聲明,一種是簡(jiǎn)短變量聲明。
標(biāo)準(zhǔn)聲明變量的方式
Go聲明一個(gè)變量的標(biāo)準(zhǔn)方式是使用關(guān)鍵字var
,另外要注意的是Go變量的數(shù)據(jù)類(lèi)型是放在變量名后面的,這點(diǎn)與其他語(yǔ)言不同:
聲明一個(gè)變量:
var i int i = 10
聲明變量的時(shí)候給變量賦值
var i int = 10
在聲明不指定數(shù)據(jù)類(lèi)型時(shí),Go通過(guò)賦值來(lái)推斷其數(shù)據(jù)類(lèi)型:
var i = 10
同時(shí)聲明多個(gè)同類(lèi)型變量
var m,n int //在同一行聲明兩個(gè)類(lèi)型相同的變量
同時(shí)聲明多個(gè)變量時(shí),也可以賦初始值:
var q,p = "test",10
批量聲明變量:
var( s string = "test" r int t,f bool )
簡(jiǎn)短聲明變量的方式
除了用關(guān)鍵字var聲明變量外,Go還支持簡(jiǎn)短的局部變量聲明。
變量的簡(jiǎn)短方式使用:=
,且不需要指定數(shù)據(jù)類(lèi)型,Go會(huì)根據(jù)聲明時(shí)賦予的值推斷數(shù)據(jù)語(yǔ)言:
注意,Go的局部變量聲明后必須使用,否則會(huì)報(bào)錯(cuò)。
package main i := 10 //錯(cuò)誤 func main(){ i := 10//根據(jù)賦值推斷i為整型 i = 100//重新賦予整型的值 i = "1" //錯(cuò)誤,不能再賦予字符串 }
Go是通過(guò)包(package
)來(lái)組織來(lái)代碼,對(duì)于在包內(nèi)聲明的變量(或者函數(shù)、常量、結(jié)構(gòu)體等)都是通過(guò)變量名的首字母是否大寫(xiě)來(lái)區(qū)分是否包外可見(jiàn),當(dāng)首字母大寫(xiě)時(shí),則其他包可以訪問(wèn)該變量。
在一個(gè)包中定義兩個(gè)變量:
package A var age int = 10 //包外不可見(jiàn) var Username string = "test" //包外可見(jiàn)
接下來(lái),我們?cè)诹硪粋€(gè)包中引入上面的包:
package B import A import "fmt" func main(){ fmt.Println(A.Username)//可以訪問(wèn) fmt.Println(A.age) //錯(cuò)誤,無(wú)法訪問(wèn)小寫(xiě)字母開(kāi)頭的變量 }
變量的值在運(yùn)行中可以隨時(shí)改變,而常量的值則在賦值后不能發(fā)生改變,常量的值在程序編譯時(shí)就已經(jīng)確定,因此常量在聲明時(shí)必須賦值。
Go語(yǔ)言使用const
關(guān)鍵來(lái)聲明一個(gè)常量。
const Version = "1.0" const pi float = 3.14
像變量一樣聲明多個(gè)常量:
const ( v1 = 100 v2 v3 )
上面這種聲明方式,常量v2
和v3
的值100。
有時(shí)候我們常常需要聲明一些有規(guī)則的常量,比說(shuō)月份或是星期這樣的枚舉值:
const ( Sunday int = 0 Monday int = 1 Tuesday int = 2 Wednesday int = 3 Thursday int = 4 Friday int = 5 Saturday int = 6 )
上面這種聲明常量的方式就比較麻煩,每個(gè)常量值都需要賦值。
而用Go提供了iota
常量生成器,在聲明這種有規(guī)則的常量時(shí),可以避免一個(gè)一個(gè)常量初始化的麻煩:
const ( Sunday int = iota Monday Tuesday Wednesday Thursday Friday Saturday )
在這個(gè)例子中,iota
所在第一行常量Sunday
會(huì)被置為0,接下來(lái)的常量依次遞增。
使用_
符號(hào)后,也可以跳過(guò)某個(gè)值或者中間插入其他值:
const ( s1 = iota //0 22 //1 _ //跳過(guò) s4 //3 s5 //4 s6 = 100 //中間插入某個(gè)值 s7 = iota //0 )
iota
也可計(jì)算后再賦給常量:
const ( January Month = 1 + iota February March April May June July August September October November December )
讀到這里,這篇“Go語(yǔ)言變量與常量如何聲明與使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。