go中switch語句的用法詳解
switch語句
使用switch語句來選擇要執(zhí)行的多個代碼塊中的一個。
在Go中的switch語句類似于C、C++、Java、JavaScript和PHP中的switch語句。不同之處在于它只執(zhí)行匹配的case,因此不需要使用break語句。
單一case的switch語法
switch 表達式 { case x: // 代碼塊 case y: // 代碼塊 case z: // ... default: // 代碼塊 }
它的工作方式如下:
- 表達式被評估一次。
- switch表達式的值與每個case的值進行比較。
- 如果匹配,則執(zhí)行相關的代碼塊。
- 默認關鍵字是可選的。它指定了如果沒有匹配的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("星期日") } }
結果:
星期四
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表達式具有相同的類型。否則,編譯器將引發(fā)錯誤。
package main import ( "fmt" ) func main() { a := 3 switch a { case 1: fmt.Println("a是一") case "b": fmt.Println("a是b") } }
結果:
./prog.go:11:2: 無法將類型為untyped string的"b"用作int類型
多個值的switch語句
在switch語句中,每個case可以有多個值:
語法
switch 表達式 { case x, y: // 代碼塊(如果表達式的值是x或y) case v, w: // 代碼塊(如果表達式的值是v或w) case z: // ... default: // 代碼塊(如果表達式在任何case中都沒有找到) }
多個值的switch示例
下面的示例使用星期幾的數字返回不同的文本:
package main import ( "fmt" ) func main() { day := 5 switch day { case 1, 3, 5: fmt.Println("奇數工作日") case 2, 4: fmt.Println("偶數工作日") case 6, 7: fmt.Println("周末") default: fmt.Println("無效的日期編號") } }
結果:
奇數工作日
到此這篇關于go中switch語句的用法詳解的文章就介紹到這了,更多相關go switch內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Go語言開發(fā)環(huán)境搭建與初探(Windows平臺下)
Go是Google開發(fā)的一種編譯型,並發(fā)型,并具有垃圾回收功能的編程語言,可能很多人想學習go語言,那么首先就要了解go語言的環(huán)境配置方法2014-10-10golang 實現(xiàn)tcp server端和client端,并計算RTT時間操作
這篇文章主要介紹了golang 實現(xiàn)tcp server端和client端,并計算RTT時間操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12golang并發(fā)編程中Goroutine 協(xié)程的實現(xiàn)
Go語言中的協(xié)程是一種輕量級線程,通過在函數前加go關鍵字來并發(fā)執(zhí)行,具有動態(tài)棧、快速啟動和低內存使用等特點,本文就來詳細的介紹一下,感興趣的可以了解一下2024-10-10