變量申明的本質就是告訴編譯器變量類型和初始化的值。編譯器得到類型,就知道如何分配內存;編譯器得到初始化值就用這個值填充內存。如果沒有,就用零值填充。
go 語言變量聲明和定義都是一起,不分開,所以變量聲明定義,統稱爲定義。
目前有4種聲明方式。
1.單變量定義
go 變量申明和定義一起,單個具體聲明格式如下:
var varname vartype = varvale
變量聲明是關鍵字“var” ,然後跟變量名字 ,接着是變量類型,最後是變量初始化表達式。
2.同類型變量批量定義
go也支持多個同類型變量同時聲明。具體格式如下:
var varname,varname2,... vartype = varvale1,varvalue2,...
3.不同類型變量批量定義
同時也支持多個不同類型的變量同時聲明
var (
varname1 type1=value1
varname2 type2=value2
varname3 type3=value3
)
4.短變量聲明。
短變量聲明可以省去“var” ,也省了類型,直接賦值,可以聲明單個,也可以聲明多個。
vara,varb,varc:=a,b,c
短變量雖然方便使用,但是無法用於函數外面
參考樣例:
//import "fmt"
func main() {
// 1 初始化不傳入初始化值
var varS1 string
// 2 多個同類型變量
var varM1,varM2,varM3=0,1,2
// 3 多個不同類型變量定義
var (
varMM1 string ="test string"
varMM2 int =10
varMM3 bool = false
)
// 4 短變量定義
shortVar :=10
fmt.Println(varS1,varM1,varM2,varM3,varMM1,varMM2,varMM3,shortVar)
}
特別注意:
a.類型和初始化表達式可以省略其中一個。只要能得到變量的類型就行,可以不用重複,例如如下表達式已知字符串,可以省略sring。
var name string = "xiaomi"
b.變量聲明定義未初始化,默認零值。數值型0,字符串爲空,指針爲“nil”,bool 型是false。
c.短變量最少有一個未聲明,如果已經聲明可以當賦值使用。如果全部已經聲明,可以直接使用賦值語句。
d.匿名變量名字“_”。主要用於佔文,定義而不使用