Go的switch的基本功能和C、Java類似:
特點(diǎn):
switch 默認(rèn)情況下 case 最后自帶 break 語句,匹配成功后就不會(huì)執(zhí)行其他 case
重點(diǎn)介紹Go當(dāng)中的Switch的兩個(gè)特別點(diǎn):**
表達(dá)式判斷為true還需要執(zhí)行后面的 case,可以使用 fallthrough
type-switch 來判斷某個(gè) interface 變量中實(shí)際存儲(chǔ)的變量類型
特點(diǎn):
強(qiáng)制執(zhí)行后面的 case 語句,fallthrough 不會(huì)判斷下一條 case 的表達(dá)式結(jié)果是否為 true。
示例:
package main import "fmt" func main() { switch { case true: fmt.Println("1、case條件語句為false!") fallthrough case false: fmt.Println("2、case條件語句為true!") default: fmt.Println("默認(rèn)的case") } }
代碼分析:
case
,因?yàn)榈诙€(gè)case
為false
而且已經(jīng)執(zhí)行完了第一個(gè)true
的case
fallthrough
關(guān)鍵字存在會(huì)強(qiáng)制執(zhí)行第二個(gè)case
特點(diǎn):
語法格式:
switch x.(type){ case type: statement(s); case type: statement(s); /* 你可以定義任意個(gè)數(shù)的case */ default: /* 可選 */ statement(s); }
示例:
package main import ( "fmt" "go/types" ) func main() { var inter interface{} = true //使用變量去代替接口當(dāng)中的值并且判斷類型 switch i := inter.(type) { case types.Nil: fmt.Println("x的類型是:", i) case int: fmt.Println("x是int類型") case float64: fmt.Println("x是float64類型") case func(int2 int): fmt.Println("x是func(int)類型") case bool, string: fmt.Println("x是bool或string類型") default: fmt.Println("未知類型") }
可以直接判斷接口當(dāng)中的數(shù)據(jù)的數(shù)據(jù)類型
到此這篇關(guān)于Go中的條件語句Switch詳解的文章就介紹到這了,更多相關(guān)Go條件語句Switch內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:江西 新余 黑龍江 嘉峪關(guān) 張掖 宜賓 延邊 武漢
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Go中的條件語句Switch示例詳解》,本文關(guān)鍵詞 中的,條件,語句,Switch,示例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。