switch 語句中的 case 代碼塊會默認帶上 break,但可以使用 fallthrough 來強制執行下一個 case 代碼塊。
package mainimport ("fmt"
)func main() {isSpace := func(char byte) bool {switch char {case ' ': // 空格符會直接 break,返回 false // 和其他語言不一樣//fallthrough // 返回 truecase '\t':return true}return false}fmt.Println(isSpace('\t')) // truefmt.Println(isSpace(' ')) // false
}
當 char
為 ' '
時,匹配第一個 case
。因為沒有 fallthrough
語句,程序不會繼續執行下一個 case
,直接跳出 switch
語句。由于沒有顯式的 return
語句,所以默認返回 false
。
fmt.Println(isSpace('\t'))
:由于 '\t'
符合第二個 case
,函數返回 true
,因此打印 true
。
fmt.Println(isSpace(' '))
:由于 ' '
符合第一個 case
,但沒有 fallthrough
,因此函數返回 false
,打印 false
。
package mainimport ("fmt"
)func main() {isSpace := func(char byte) bool {switch char {case ' ':fallthroughcase '\t':return true}return false}fmt.Println(isSpace('\t')) // truefmt.Println(isSpace(' ')) // true
}
當 char
為 ' '
時,fallthrough
會繼續執行下一個 case
的語句,從而返回 true
。
最后給大家推薦一個LinuxC/C++高級架構系統教程的學習資源與課程,可以幫助你有方向、更細致地學習C/C++后端開發,具體內容請見 https://xxetb.xetslk.com/s/1o04uB