go語言中fallthrough的用法說明
fallthrough:Go里面switch默認(rèn)相當(dāng)于每個(gè)case最后帶有break,匹配成功后不會自動向下執(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
問題:是否在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正確的分支開始其作用。
補(bǔ)充:【踩坑】golang的fallthrough大坑
加了fallthrough后,會直接運(yùn)行【緊跟的后一個(gè)】case或default語句,不論條件是否滿足都會執(zhí)行,后面的條件并不會再判斷了,?
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹
這篇文章主要為大家介紹了Golang高性能持久化解決方案BoltDB數(shù)據(jù)庫介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11gorm update傳入struct對象,零值字段不更新的解決方案
這篇文章主要介紹了gorm update傳入struct對象,零值字段不更新的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04golang調(diào)試bug及性能監(jiān)控方式實(shí)踐總結(jié)
這篇文章主要為大家介紹了golang調(diào)試bug及性能監(jiān)控方式實(shí)踐是總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05詳解Go語言如何熱重載和優(yōu)雅地關(guān)閉程序
我們有時(shí)會因不同的目的去關(guān)閉服務(wù),一種關(guān)閉服務(wù)是終止操作系統(tǒng),一種關(guān)閉服務(wù)是用來更新配置,本文就來和大家簡單講講這兩種方法的實(shí)現(xiàn)吧2023-07-07golang并發(fā)編程中Goroutine 協(xié)程的實(shí)現(xiàn)
Go語言中的協(xié)程是一種輕量級線程,通過在函數(shù)前加go關(guān)鍵字來并發(fā)執(zhí)行,具有動態(tài)棧、快速啟動和低內(nèi)存使用等特點(diǎn),本文就來詳細(xì)的介紹一下,感興趣的可以了解一下2024-10-10Golang?errgroup?設(shè)計(jì)及實(shí)現(xiàn)原理解析
這篇文章主要為大家介紹了Golang?errgroup?設(shè)計(jì)及實(shí)現(xiàn)原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08