Go語(yǔ)言學(xué)習(xí)之條件語(yǔ)句使用詳解
1、if...else判斷語(yǔ)法
語(yǔ)法的使用和其他語(yǔ)言沒(méi)啥區(qū)別。
樣例代碼如下:
// 判斷語(yǔ)句 func panduan(a int) { if a > 50 { fmt.Println("a > 50") } else if a < 30 { fmt.Println("a < 30") } else { fmt.Println("a <= 50 and a >= 30") } } func main() { panduan(120) }
執(zhí)行結(jié)果
a > 50
2、if嵌套語(yǔ)法
樣例代碼如下
//嵌套判斷 func qiantao(b, c uint) { if b >= 100 { b -= 20 if c > b { fmt.Println("c OK") } else { fmt.Println("b OK") } } }
執(zhí)行結(jié)果
c OK
3、switch語(yǔ)句
兩種寫(xiě)法,不需要加break。
樣例代碼如下
//switch使用 func test_switch() { var a uint = 90 var result string switch a { case 90: result = "A" case 80, 70, 60: result = "B" default: result = "C" } fmt.Printf("result: %v\n", result) switch { case a > 90: result = "A" case a <= 90 && a >= 80: result = "B" default: result = "C" } fmt.Printf("result: %v\n", result) }
執(zhí)行結(jié)果
result: A
result: B
注意
1、可是在switch后面加變量,后面的case主要做匹配判斷。也可以直接使用switch{},case直接對(duì)關(guān)系運(yùn)算結(jié)果做匹配。
2、 case中可以選擇匹配多項(xiàng)。
4、類(lèi)型switch語(yǔ)句
switch語(yǔ)句可以使用type-switch進(jìn)行類(lèi)型判斷,感覺(jué)很實(shí)用的語(yǔ)法。
樣例代碼如下
//測(cè)試類(lèi)型switch func test_type_switch() { var x interface{} x = 1.0 switch i := x.(type) { case nil: fmt.Printf("x type = %T\n", i) case bool, string: fmt.Printf("x type = bool or string\n") case int: fmt.Printf("x type = int\n") case float64: fmt.Printf("x type = float64\n") default: fmt.Printf("未知\n") } }
執(zhí)行結(jié)果
x type = float64
注意
1、interface{}可以表示任何類(lèi)型。
2、語(yǔ)法格式變量.(type)
5、fallthrough關(guān)鍵字使用
使用fallthrough關(guān)鍵字會(huì)強(qiáng)制執(zhí)行后面的case語(yǔ)句內(nèi)容,不管時(shí)候觸發(fā)該case條件。
樣例代碼如下
// 測(cè)試fallthrough func test_fallthrough() { a := 1 switch { case a < 0: fmt.Println("1") fallthrough case a > 0: fmt.Println("2") fallthrough case a < 0: fmt.Println("3") fallthrough case a < 0: fmt.Println("4") case a > 0: fmt.Println("5") fallthrough case a < 0: fmt.Println("6") fallthrough default: fmt.Println("7") } }
執(zhí)行結(jié)果
2
3
4
注意
1、如果一旦在往下執(zhí)行case內(nèi)容中不存在fallthrough,則會(huì)停止繼續(xù)往下執(zhí)行case內(nèi)容。
小結(jié)
我看到還有個(gè)select語(yǔ)句,需要和chan關(guān)鍵字進(jìn)行配合使用,沒(méi)不了解,后面先研究一下chan關(guān)鍵字。
到此這篇關(guān)于Go語(yǔ)言學(xué)習(xí)之條件語(yǔ)句使用詳解的文章就介紹到這了,更多相關(guān)Go條件語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go1.18新特性工作區(qū)模糊測(cè)試及泛型的使用詳解
這篇文章主要為大家介紹了Go?1.18新特性中的工作區(qū)?模糊測(cè)試?泛型使用進(jìn)行詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%
這篇文章主要介紹了go語(yǔ)言time.After優(yōu)化后性能提升34%內(nèi)存減少67%實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Go簡(jiǎn)單實(shí)現(xiàn)協(xié)程池的實(shí)現(xiàn)示例
本文主要介紹了Go簡(jiǎn)單實(shí)現(xiàn)協(xié)程池的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06在ubuntu下安裝go開(kāi)發(fā)環(huán)境的全過(guò)程
Go語(yǔ)言是谷歌公司開(kāi)發(fā)的編程語(yǔ)言,雖然安裝和配置go很簡(jiǎn)單,但是很多初學(xué)者在第一次安裝go環(huán)境時(shí)會(huì)遇到各種坑,下面這篇文章主要給大家介紹了關(guān)于在ubuntu下安裝go開(kāi)發(fā)環(huán)境的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08GO的基礎(chǔ)知識(shí)掃盲注意事項(xiàng)
這篇文章主要介紹了GO的基礎(chǔ)知識(shí)注意事項(xiàng),本文是GO語(yǔ)言小白的掃盲文,主要講解了go語(yǔ)言的基本知識(shí),GO程序目錄結(jié)構(gòu),GO程序包的導(dǎo)入與別名運(yùn)用,GO內(nèi)置關(guān)鍵字,GO注釋方法需要的朋友可以參考下2022-12-12Go語(yǔ)言并發(fā)編程之互斥鎖Mutex和讀寫(xiě)鎖RWMutex
Go 語(yǔ)言中提供了很多同步工具,本文將介紹互斥鎖Mutex和讀寫(xiě)鎖RWMutex的使用方法,想要具體了解的小伙伴,請(qǐng)參考下面文章詳細(xì)內(nèi)容,希望對(duì)你有所幫助2021-10-10Golang學(xué)習(xí)之反射機(jī)制的用法詳解
反射的本質(zhì)就是在程序運(yùn)行的時(shí)候,獲取對(duì)象的類(lèi)型信息和內(nèi)存結(jié)語(yǔ)構(gòu),反射是把雙刃劍,功能強(qiáng)大但可讀性差。本文將詳細(xì)講講Golang中的反射機(jī)制,感興趣的可以了解一下2022-06-06