Go語言中流程控制有三大類:
if 條件判斷式 {
//若為真則執行這區塊
} else {
//若為假則執行此區塊
}
跳轉到當前函數內定義的標籤位置。
無法跨函數跳轉。
func myFunc() {
i := 0
Here:
fmt.Println(i)
i++
goto Here // 跳轉到Here
}
Go語言中沒有while和do while,所有的迴圈都必須用for來實現。
for的三大用途:
配合range函數取得array和slice的index與value後賦值給變數,若range函數的對象為map時,回傳值會是key、value對。
for k, v := range map {
fmt.Println("map's key is ", k)
fmt.Println("map's value is ", v)
}
當我們想忽略其中一個變數時,可以用下底線_來丟棄不必要的回傳值,否則對於“宣告後未使用“的變數,Go編釋時會報錯。
for _, v := range map {
//忽略key
//do something
}
控制邏輯有多重判斷時,我們有兩種選擇,1.使用多個if、elif和else判斷,2.使用switch。
switch在使用上有一些限制:
switch 判斷參數 {
case :
some instructions
case expr2:
some other instructions
case expr3:
some other instructions
default:
other code
}