基本寫法
Go語言改進了 switch 的語法設計,case 與 case 之間是獨立的代碼塊,不需要通過 break 語句跳出當前 case 代碼塊以避免執行到下一行,示例代碼如下:
var str = "hello" //基本用法 switch str { case "good": fmt.Println("Good morning") case "hello": fmt.Println("hello everyone") default: fmt.Println("hi") }
代碼輸出如下:
hello everyone
1) 一分支多值
當出現多個 case 要放在一起的時候,可以寫成下面這樣:
//一分支,多值 switch str { case "hello", "nihao": fmt.Printf("一分支,多值:%s \n", str) default: fmt.Println("hi") }
不同的 case 表達式使用逗號分隔。
2) 分支表達式
case 后不僅僅只是常量,還可以和 if 一樣添加表達式,代碼如下:
//分支表達式 var num = 7 switch { case num > 1 && num < 5: fmt.Println("小於5的數") case num > 5 && num < 10: fmt.Println("大於5,小於10的數") }
代碼輸出如下:
大於5,小於10的數