新聞中心
Go語言的 switch 要比C語言的更加通用,表達(dá)式不需要為常量,甚至不需要為整數(shù),case 按照從上到下的順序進(jìn)行求值,直到找到匹配的項,如果 switch 沒有表達(dá)式,則對 true 進(jìn)行匹配,因此,可以將 if else-if else 改寫成一個 switch。

白塔網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)建站于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。
相對于C語言和 Java 等其它語言來說,Go語言中的 switch 結(jié)構(gòu)使用上更加靈活,語法設(shè)計盡量以使用方便為主。
基本寫法
Go語言改進(jìn)了 switch 的語法設(shè)計,case 與 case 之間是獨立的代碼塊,不需要通過 break 語句跳出當(dāng)前 case 代碼塊以避免執(zhí)行到下一行,示例代碼如下:
var a = "hello"
switch a {
case "hello":
fmt.Println(1)
case "world":
fmt.Println(2)
default:
fmt.Println(0)
}代碼輸出如下:
1
上面例子中,每一個 case 均是字符串格式,且使用了 default 分支,Go語言規(guī)定每個 switch 只能有一個 default 分支。
1) 一分支多值
當(dāng)出現(xiàn)多個 case 要放在一起的時候,可以寫成下面這樣:
var a = "mum"
switch a {
case "mum", "daddy":
fmt.Println("family")
}不同的 case 表達(dá)式使用逗號分隔。
2) 分支表達(dá)式
case 后不僅僅只是常量,還可以和 if 一樣添加表達(dá)式,代碼如下:
var r int = 11
switch {
case r > 10 && r < 20:
fmt.Println(r)
}注意,這種情況的 switch 后面不再需要跟判斷變量。
跨越 case 的 fallthrough——兼容C語言的 case 設(shè)計
在Go語言中 case 是一個獨立的代碼塊,執(zhí)行完畢后不會像C語言那樣緊接著執(zhí)行下一個 case,但是為了兼容一些移植代碼,依然加入了 fallthrough 關(guān)鍵字來實現(xiàn)這一功能,代碼如下:
var s = "hello"
switch {
case s == "hello":
fmt.Println("hello")
fallthrough
case s != "world":
fmt.Println("world")
}代碼輸出如下:
hello
world
新編寫的代碼,不建議使用 fallthrough。
名稱欄目:創(chuàng)新互聯(lián)GO教程:Go語言switchcase語句
本文網(wǎng)址:http://www.5511xx.com/article/dpejghj.html


咨詢
建站咨詢
