// 1 聲明類型,沒有初始化,零值(false)
var a bool
a = true
fmt.Println("a = ", a)
// 2 自動推導類型
var b = false
fmt.Println("b = ", b)
c := false
fmt.Println("c = ", c)
var a int //變量的聲明
a = 123 //變量的賦值
var b int = 123 //變量的聲明,同時賦值
var c = 321 //變量的聲明,同時賦值,省略變量類型,由編譯器推斷,這里認為是int
var s = "中國" //這里編譯器推斷是字符串string類型
d := 456 //變量聲明與賦值的最簡方法,這種方法只能用在函數(shù)內(nèi)部
上面是常用的變量聲明和賦值方法,一般常用的應該是var 變量名 = 賦值。
需要注意的是,全局變量一般都是通過var方式來定義,函數(shù)局部變量采用:=方式來定義。
多個變量的聲明和賦值
var a, b, c int //變量的聲明
a = 1 //變量的賦值
b = 2
c = 3
var a, b, c int = 1, 2, 3 //變量的聲明,同時賦值 是不是覺得很別扭,搞不懂go為啥要這么定義他
var a, b, c = 1, 2, 3 //一般采用此方法來定義
_, b := 2, 3 // _(下劃線)是個特殊的變量名,任何賦予它的值都會被丟棄。唉,既然會被丟棄,還用它干啥呢。
編譯的時候會報錯:(type int8) as type int32 in assignment。另外,盡管int的長度是32bit,但是int與int32也是不可以互用的。
復數(shù)
Go語言支持復數(shù),它的默認類型是 complex128 (64 位實數(shù)+64 位虛數(shù))。如果需要小一些的,也有 complex64 (32 位實數(shù)+32 位虛數(shù))。復數(shù)的形式為 RE + IMi ,其中 RE 是實數(shù)部分, IM 是虛數(shù)部分,而最后的 i 是虛數(shù)單位。