重學(xué)Go語言之變量與常量的聲明與使用詳解
變量
什么是變量?變量是一塊可以隨時存放數(shù)據(jù)的內(nèi)存區(qū)域。在我們申請這塊內(nèi)存區(qū)域(聲明變量)時,需要指定變量名以及變量的數(shù)據(jù)類型,數(shù)據(jù)類型用于說明變量可以存放什么值。
Go是強類型語言,因此Go的變量需要先聲明再使用,且聲明后不可以改變其數(shù)據(jù)類型。
變量名
- 變量名必須以字母或下劃線開頭。
- 變量名區(qū)分大小寫,比如
Version
和version
是兩個不同的變量。 - 不能用關(guān)鍵字(25個)和保留字(37個)給變量命名。
聲明
Go語言變量有兩種聲明方式,一種是標準的變量聲明,一種是簡短變量聲明。
標準聲明變量的方式
Go聲明一個變量的標準方式是使用關(guān)鍵字var
,另外要注意的是Go變量的數(shù)據(jù)類型是放在變量名后面的,這點與其他語言不同:
聲明一個變量:
var i int i = 10
聲明變量的時候給變量賦值
var i int = 10
在聲明不指定數(shù)據(jù)類型時,Go通過賦值來推斷其數(shù)據(jù)類型:
var i = 10
同時聲明多個同類型變量
var m,n int //在同一行聲明兩個類型相同的變量
同時聲明多個變量時,也可以賦初始值:
var q,p = "test",10
批量聲明變量:
var( s string = "test" r int t,f bool )
簡短聲明變量的方式
除了用關(guān)鍵字var聲明變量外,Go還支持簡短的局部變量聲明。
變量的簡短方式使用:=
,且不需要指定數(shù)據(jù)類型,Go會根據(jù)聲明時賦予的值推斷數(shù)據(jù)語言:
注意,Go的局部變量聲明后必須使用,否則會報錯。
package main ? i := 10 //錯誤 ? func main(){ i := 10//根據(jù)賦值推斷i為整型 i = 100//重新賦予整型的值 i = "1" //錯誤,不能再賦予字符串 }
變量作用域
Go是通過包(package
)來組織來代碼,對于在包內(nèi)聲明的變量(或者函數(shù)、常量、結(jié)構(gòu)體等)都是通過變量名的首字母是否大寫來區(qū)分是否包外可見,當首字母大寫時,則其他包可以訪問該變量。
在一個包中定義兩個變量:
package A ? var age int = 10 //包外不可見 ? var Username string = "test" //包外可見
接下來,我們在另一個包中引入上面的包:
package B ? import A import "fmt" ? func main(){ fmt.Println(A.Username)//可以訪問 fmt.Println(A.age) //錯誤,無法訪問小寫字母開頭的變量 }
常量
變量的值在運行中可以隨時改變,而常量的值則在賦值后不能發(fā)生改變,常量的值在程序編譯時就已經(jīng)確定,因此常量在聲明時必須賦值。
Go語言使用const
關(guān)鍵來聲明一個常量。
const Version = "1.0" const pi float = 3.14
像變量一樣聲明多個常量:
const ( v1 = 100 v2 v3 )
上面這種聲明方式,常量v2
和v3
的值100。
iota 常量生成器
有時候我們常常需要聲明一些有規(guī)則的常量,比說月份或是星期這樣的枚舉值:
const ( Sunday int = 0 Monday int = 1 Tuesday int = 2 Wednesday int = 3 Thursday int = 4 Friday int = 5 Saturday int = 6 )
上面這種聲明常量的方式就比較麻煩,每個常量值都需要賦值。
而用Go提供了iota
常量生成器,在聲明這種有規(guī)則的常量時,可以避免一個一個常量初始化的麻煩:
const ( Sunday int = iota Monday Tuesday Wednesday Thursday Friday Saturday )
在這個例子中,iota
所在第一行常量Sunday
會被置為0,接下來的常量依次遞增。
使用_
符號后,也可以跳過某個值或者中間插入其他值:
const ( s1 = iota //0 22 //1 _ //跳過 s4 //3 s5 //4 s6 = 100 //中間插入某個值 s7 = iota //0 )
iota
也可計算后再賦給常量:
const ( January Month = 1 + iota February March April May June July August September October November December )
小結(jié)
Go的變量與常量的聲明是把數(shù)據(jù)類型放在變量名后面的,這點與其他編程語言不同,另外,變量和常量名首字母大小寫決定該變量或常量是否包外可見。
到此這篇關(guān)于重學(xué)Go語言之變量與常量的聲明與使用詳解的文章就介紹到這了,更多相關(guān)Go語言變量 常量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang 數(shù)據(jù)庫操作(sqlx)和不定字段結(jié)果查詢
本文主要介紹了Golang 數(shù)據(jù)庫操作(sqlx)和不定字段結(jié)果查詢,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Golang Gin框架實現(xiàn)文件下載功能的示例代碼
本文主要介紹了Golang Gin框架實現(xiàn)文件下載功能的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12