Go switch 語句
switch 語句
使用 switch
語句從多個程式碼塊中選擇一個來執行。
Go 中的 switch
語句類似於 C、C++、Java、JavaScript 和 PHP 中的語句。不同之處在於它只執行匹配的 case,因此不需要 break
語句。
單 case switch 語法
語法
switch 表示式 {
case x
// 程式碼塊
case y
// 程式碼塊
case z
...
default
// 程式碼塊
}
工作原理如下
- 表示式只計算一次
- switch 表示式的值與每個
case
的值進行比較 - 如果匹配成功,則執行關聯的程式碼塊
default
關鍵字是可選的。如果沒有任何case
匹配,則指定要執行的程式碼
單 case switch 示例
下面的示例使用星期幾的數字來計算星期幾的名稱
示例
package main
import ("fmt")
func main() {
day := 4
switch day {
case 1
fmt.Println("星期一")
case 2
fmt.Println("星期二")
case 3
fmt.Println("星期三")
case 4
fmt.Println("星期四")
case 5
fmt.Println("星期五")
case 6
fmt.Println("星期六")
case 7
fmt.Println("星期日")
}
}
結果
Thursday
default 關鍵字
default
關鍵字指定了在沒有 case 匹配時執行的一些程式碼。
示例
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1
fmt.Println("星期一")
case 2
fmt.Println("星期二")
case 3
fmt.Println("星期三")
case 4
fmt.Println("星期四")
case 5
fmt.Println("星期五")
case 6
fmt.Println("星期六")
case 7
fmt.Println("星期日")
default
fmt.Println("不是一個工作日")
}
}
結果
不是一個工作日
所有 case
的值都應與 switch
表示式具有相同的型別。否則,編譯器將報錯
示例
package main
import ("fmt")
func main() {
a := 3
switch a {
case 1
fmt.Println("a is one")
case "b"
fmt.Println("a is b")
}
}
結果
./prog.go:11:2: cannot use "b" (type untyped string) as type int