這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
1 變數
1-1 聲明
在 Go 語言中聲明變數使用關鍵字 var
例如
var int_a int; // 多數情況下分號可以省略
在聲明的同時沒有初始化值時,Go 會給基礎類型設定預設值,
int 0
int8 0
int32 0
int64 0
uint 0x0
rune 0 //rune的實際類型是 int32
byte 0x0 // byte的實際類型是 uint8
float32 0 //長度為 4 byte
float64 0 //長度為 8 byte
bool false
string ""
聲明的同時也可以賦值初始化,例如
var int_a int =1
聲明同時賦值可以簡單縮寫為
int_a := 1
1-2 多個相同類型的聲明
多個相同類型的聲明可以簡寫為
var a, b, c int
也可以同時賦值
var a, b, c int = 1, 2, 3
也可以簡寫為
a, b, c := 1, 2, 3
1-3 多個不同類型的聲明
多個不同類型的聲明可以簡寫為
var (
a int
b string
)
也可以同時賦值
var (
a int = 1
b string = "abc"
)
1-4 特殊的空標識 _
任何賦值空標識 _ 的都會丟棄,一般用來做傳回值有多個值時,但可能只用到其中的幾個,只保留用到值,其他的值可以捨棄。
a, _, c := 1, 2, 3
數值 2 會被丟棄掉
2 常量
2-1 聲明
在 Go 語言中聲明變數使用關鍵字 const,常量的值只能是 bool、string 或數字類型中的一種。
例如
const a int = 1
因為聲明常量必須初始化,所以type可以省略,即
const a = 1
2-2 多個相同類型的聲明
多個相同類型的聲明可以簡寫為
const a, b = 1, 2
2-3 多個不同類型的聲明
多個不同類型的聲明可以簡寫為
const (
a = 1
b = "abc"
c = false
)
2-4 特殊的關鍵字iota
Go裡面有一個關鍵字iota,這個關鍵字用來聲明enum的時候採用,它預設開始值是0,每調用一次加1
const (
a = iota // a = 0
b // b = 1
c // c = 2
)
iota也可以參與運算,例如
const (
a = 1 << iota // a = 1 (iota has been reset) 1*2^0
b = 1 << iota // b = 2 1*2^1
c = 1 << iota // c = 4 1*2^2
)
參考資料
《Go語言.雲動力》
《Go Web 編程》