1. 變量
1.1 變量聲明
變量聲明的標(biāo)準(zhǔn)格式:
var <變量名稱> <變量類型>
變量名稱的首字母大小寫(xiě)則決定該變量可否被外部引入,變量類型Go語(yǔ)言中支持很多種比如常見(jiàn)的int、string、bool、byte、float32等。
除了標(biāo)準(zhǔn)格式的聲明外,還有兩種帶初始化的變量聲明:
var <變量名稱> = <變量值>,會(huì)根據(jù)初始化變量具體的值來(lái)確定變量的類型,且使用范圍沒(méi)有限制;
<變量名稱> := <變量值>,簡(jiǎn)短模式的變量聲明且?guī)в酗@式初始化,不過(guò)這種方法僅限于在函數(shù)內(nèi)部使用;
另外,變量的聲明還支持如下的使用形式:
// 同時(shí)聲明同一類型的多個(gè)變量
var a, b int
// 支持批次聲明
var (
a int
b string
help bool
array0 [10]int
slice0 []int
)
1.2 變量初始化
關(guān)于變量的初始化方法其實(shí)上面變量聲明中已經(jīng)基本上都已經(jīng)涉及到了,還要一種對(duì)應(yīng)標(biāo)準(zhǔn)格式的初始化方法:
var <變量名稱> <變量類型> = <變量值>
最后注意,一旦變量被聲明之后,在Go的內(nèi)存中其實(shí)都已經(jīng)被初始化了,系統(tǒng)自動(dòng)賦予它該類型的零值:int 為 0,float 為 0.0,bool 為 false,string 為空字符串,指針為 nil等。
2 常量
go語(yǔ)言的常量通常使用const關(guān)鍵字來(lái)聲明,并且常量的數(shù)據(jù)類型只可以是布爾型、數(shù)字型和字符串型,一般的定義格式如下:
const 變量名稱 [變量類型] = 變量值,跟變量相比,一般常量除了由關(guān)鍵字var --> const外,定義規(guī)則基本上跟變量保持一致,另外常量還支持枚舉類型,比如:
const (
UNKNOWN = 400
SUCCESS = 200
ERROR = 500
)
并且常量可以用函數(shù)計(jì)算表達(dá)式的值,不過(guò)這些函數(shù)必須是go的內(nèi)置函數(shù),否則編譯不過(guò)。
特殊常量iota
常量聲明可以使用 iota 常量生成器初始化,它用于生成一組以相似規(guī)則初始化的常量,但是不用每行都寫(xiě)一遍初始化表達(dá)式。在一個(gè) const 聲明語(yǔ)句中,在第一個(gè)聲明的常量所在的行,iota 將會(huì)被置為 0,然后在每一個(gè)有常量聲明的行加一,下面看幾個(gè)相關(guān)的例子:
- Example1
const (
a = iota //a=0
b //b=1
c //c=2
d //d=3
e = "welcome"
f
g = iota
h
i
)
- Example2
const (
a = 1 << iota // a=1
b = 3 << iota // b=6
c //c=12
d //d=24
)