Go語言學(xué)習(xí)之條件語句使用詳解
1、if...else判斷語法
語法的使用和其他語言沒啥區(qū)別。
樣例代碼如下:
// 判斷語句 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嵌套語法
樣例代碼如下
//嵌套判斷 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語句
兩種寫法,不需要加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直接對關(guān)系運(yùn)算結(jié)果做匹配。
2、 case中可以選擇匹配多項(xiàng)。
4、類型switch語句
switch語句可以使用type-switch進(jìn)行類型判斷,感覺很實(shí)用的語法。
樣例代碼如下
//測試類型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{}可以表示任何類型。
2、語法格式變量.(type)
5、fallthrough關(guān)鍵字使用
使用fallthrough關(guān)鍵字會強(qiáng)制執(zhí)行后面的case語句內(nèi)容,不管時(shí)候觸發(fā)該case條件。
樣例代碼如下
// 測試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,則會停止繼續(xù)往下執(zhí)行case內(nèi)容。
小結(jié)
我看到還有個(gè)select語句,需要和chan關(guān)鍵字進(jìn)行配合使用,沒不了解,后面先研究一下chan關(guān)鍵字。
到此這篇關(guān)于Go語言學(xué)習(xí)之條件語句使用詳解的文章就介紹到這了,更多相關(guān)Go條件語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%
這篇文章主要介紹了go語言time.After優(yōu)化后性能提升34%內(nèi)存減少67%實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Go簡單實(shí)現(xiàn)協(xié)程池的實(shí)現(xiàn)示例
本文主要介紹了Go簡單實(shí)現(xiàn)協(xié)程池的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06在ubuntu下安裝go開發(fā)環(huán)境的全過程
Go語言是谷歌公司開發(fā)的編程語言,雖然安裝和配置go很簡單,但是很多初學(xué)者在第一次安裝go環(huán)境時(shí)會遇到各種坑,下面這篇文章主要給大家介紹了關(guān)于在ubuntu下安裝go開發(fā)環(huán)境的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Go語言并發(fā)編程之互斥鎖Mutex和讀寫鎖RWMutex
Go 語言中提供了很多同步工具,本文將介紹互斥鎖Mutex和讀寫鎖RWMutex的使用方法,想要具體了解的小伙伴,請參考下面文章詳細(xì)內(nèi)容,希望對你有所幫助2021-10-10Golang學(xué)習(xí)之反射機(jī)制的用法詳解
反射的本質(zhì)就是在程序運(yùn)行的時(shí)候,獲取對象的類型信息和內(nèi)存結(jié)語構(gòu),反射是把雙刃劍,功能強(qiáng)大但可讀性差。本文將詳細(xì)講講Golang中的反射機(jī)制,感興趣的可以了解一下2022-06-06