在Go語言中,switch
語句是一種強大的條件控制結構,它比傳統的if-else
鏈更簡潔、更易讀。本文將介紹Go中switch
的基本用法和一些高級特性。
Go中的switch
基本語法如下:
switch expression {
case value1:
// 代碼塊1
case value2:
// 代碼塊2
default:
// 默認代碼塊
}
day := 3
switch day {
case 1:
fmt.Println("星期一")
case 2:
fmt.Println("星期二")
case 3:
fmt.Println("星期三")
default:
fmt.Println("其他日子")
}
Go允許省略switch
后的表達式,此時相當于switch true
,每個case
表達式都會被求值為布爾值:
num := 75
switch {
case num < 50:
fmt.Println("小于50")
case num >= 50 && num < 100:
fmt.Println("50到100之間")
default:
fmt.Println("大于等于100")
}
一個case
可以包含多個值,用逗號分隔:
month := 4
switch month {
case 1, 3, 5, 7, 8, 10, 12:
fmt.Println("31天")
case 4, 6, 9, 11:
fmt.Println("30天")
case 2:
fmt.Println("28或29天")
}
Go的switch
還可以用于類型判斷:
func checkType(x interface{}) {
switch x.(type) {
case int:
fmt.Println("整型")
case string:
fmt.Println("字符串")
case bool:
fmt.Println("布爾型")
default:
fmt.Println("未知類型")
}
}
默認情況下,Go的switch
執行完匹配的case
后會自動退出,使用fallthrough
可以強制執行下一個case
:
num := 1
switch num {
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
default:
fmt.Println("默認")
}
// 輸出:
// 1
// 2
switch
不需要break
語句,默認不會”貫穿”case
表達式可以是任意類型,不限于常量或整數switch
后的表達式,實現更靈活的布爾邏輯通過合理使用switch
語句,可以使Go代碼更加簡潔和易讀,特別是在處理多個條件分支時。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。