既然上一站已經說明了 Switch 的用法,那這一站就來說明 Go Switch 的其他優點
在開始之前我還是想先說一下,上一站一定會有人有疑問,那如果我今天輸入的值,剛好都沒有以下 case 可以對應的結果,那會怎麼樣呢? 這邊直接用程式碼顯示
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
}
}
結果顯示
沒錯,如你所見沒有東西,這是因為我們沒有給它一個類似 else 的東西,那當然 Switch 有這種東西,名為 "default",修改後會變成這樣
package main
import ("fmt")
func main() {
day := 8
switch day {
case 1:
fmt.Println("Monday")
case 2:
fmt.Println("Tuesday")
case 3:
fmt.Println("Wednesday")
case 4:
fmt.Println("Thursday")
case 5:
fmt.Println("Friday")
case 6:
fmt.Println("Saturday")
case 7:
fmt.Println("Sunday")
default:
fmt.Println("Error")
}
}
輸出結果
我記得上一站好像有,但是我發現我沒有跟大家講解,所以怕大家有疑問這裡跟大家講解一下,那我們繼續 Go Switch 的優點
當 Go Switch 有多個情況發生,它可以這麼寫
package main
import ("fmt")
func main() {
day := 4
switch day {
case 1,3,5:
fmt.Println("Odd weekday")
case 2,4:
fmt.Println("Even weekday")
case 6,7:
fmt.Println("Weekend")
default:
fmt.Println("Invalid day of day number")
}
}
雖然說其他的程式語言也有這種類似的寫法,但是我覺得 Go 的寫法算是滿好理解的,總而言之我覺得 Go 的 Switch 語句更靈活、更強大!
跟大家分享完了 Go 語法的 Switch 希望大家可以有所收穫,雖然我可能講的不是很完整或是有些地方可能說錯了,那我也希望大師或是前輩可以多多鞭策我,然後跟我一樣是菜鳥的同學也歡迎跟我一起討論~
Go Multi-case switch
https://www.w3schools.com/go/go_switch_multi.php