go語(yǔ)言中fallthrough的用法說(shuō)明
fallthrough:Go里面switch默認(rèn)相當(dāng)于每個(gè)case最后帶有break,匹配成功后不會(huì)自動(dòng)向下執(zhí)行其他case,而是跳出整個(gè)switch, 但是可以使用fallthrough強(qiáng)制執(zhí)行后面的case代碼。
示例程序1:
switch {
case false:
fmt.Println("The integer was <= 4")
fallthrough
case true:
fmt.Println("The integer was <= 5")
fallthrough
case false:
fmt.Println("The integer was <= 6")
fallthrough
case true:
fmt.Println("The integer was <= 7")
fallthrough
case false:
fmt.Println("The integer was <= 8")
default:
fmt.Println("default case")
}
輸出結(jié)果:
The integer was <= 5
The integer was <= 6
The integer was <= 7
The integer was <= 8
問(wèn)題:是否在switch最后一個(gè)分支使用fallthrough???
有錯(cuò)誤提示,顯示:cannot fallthrough final case in switch
fallthrough不能用在switch的最后一個(gè)分支。
示例程序2:
上述示例是true、false常量進(jìn)行分支判斷,看如下變量示例。
s := "abcd"
switch s[1] {
case 'a':
fmt.Println("The integer was <= 4")
fallthrough
case 'b':
fmt.Println("The integer was <= 5")
fallthrough
case 'c':
fmt.Println("The integer was <= 6")
default:
fmt.Println("default case")
}
輸出結(jié)果如下:
The integer was <= 5
The integer was <= 6
更改為:
s := "abcd"
switch s[3] {
case 'a':
fmt.Println("The integer was <= 4")
fallthrough
case 'b':
fmt.Println("The integer was <= 5")
fallthrough
case 'c':
fmt.Println("The integer was <= 6")
default:
fmt.Println("default case")
}
輸出:
default case
總結(jié):
switch分支中使用變量進(jìn)行判斷的時(shí),fallthrough正確的分支開(kāi)始其作用。
補(bǔ)充:【踩坑】golang的fallthrough大坑
加了fallthrough后,會(huì)直接運(yùn)行【緊跟的后一個(gè)】case或default語(yǔ)句,不論條件是否滿足都會(huì)執(zhí)行,后面的條件并不會(huì)再判斷了,?
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
輕松入門:使用Golang開(kāi)發(fā)跨平臺(tái)GUI應(yīng)用
Golang是一種強(qiáng)大的編程語(yǔ)言,它的并發(fā)性和高性能使其成為開(kāi)發(fā)GUI桌面應(yīng)用的理想選擇,Golang提供了豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),可以輕松地創(chuàng)建跨平臺(tái)的GUI應(yīng)用程序,通過(guò)使用Golang的GUI庫(kù),開(kāi)發(fā)人員可以快速構(gòu)建具有豐富用戶界面和交互功能的應(yīng)用程序,需要的朋友可以參考下2023-10-10
Go結(jié)合MQTT實(shí)現(xiàn)通信的示例代碼
本文主要介紹了Go結(jié)合MQTT實(shí)現(xiàn)通信的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
GoFrame框架gset交差并補(bǔ)集使用實(shí)例
這篇文章主要為大家介紹了GoFrame框架gset交差并補(bǔ)集使用實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
使用Go語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程傳輸文件
本文主要介紹如何利用Go語(yǔ)言實(shí)現(xiàn)遠(yuǎn)程傳輸文件的功能,有需要的小伙伴們可以參考學(xué)習(xí)。下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)。2016-08-08
golang簡(jiǎn)單tls協(xié)議用法完整示例
這篇文章主要介紹了golang簡(jiǎn)單tls用法,分析了tls協(xié)議的使用步驟及客戶端與服務(wù)器端的相關(guān)實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-07-07
Go語(yǔ)言學(xué)習(xí)之映射(map)的用法詳解
Map是一種無(wú)序的鍵值對(duì)的集合。這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言中映射的用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Go語(yǔ)言有一定的幫助,需要的可以參考一下2022-04-04
一步步教你在Linux上安裝Go語(yǔ)言環(huán)境
本文將介紹如何在Linux操作系統(tǒng)下搭建Go語(yǔ)言環(huán)境,Go語(yǔ)言是一種開(kāi)源的編程語(yǔ)言,具有高效、簡(jiǎn)潔和并發(fā)性強(qiáng)的特點(diǎn),適用于開(kāi)發(fā)各種類型的應(yīng)用程序,搭建Go語(yǔ)言環(huán)境是開(kāi)始學(xué)習(xí)和開(kāi)發(fā)Go語(yǔ)言項(xiàng)目的第一步,本文將詳細(xì)介紹安裝Go語(yǔ)言、配置環(huán)境變量以及驗(yàn)證安裝是否成功的步驟2023-10-10


