[英]Go switch fallthrough
我正在嘗試了解switch / fallthrough關鍵字。 在switch塊中使用fallthrough語句意味着即使表達式不匹配也要輸入下一個塊,但這僅在已經存在匹配權時才有效? 下面的代碼似乎可以這樣工作,但我只是想確定一下。
package main
import "fmt"
func main() {
integer := 5
switch integer {
case 4:
fmt.Println("integer <= 4")
fallthrough
case 5:
fmt.Println("integer <= 5")
fallthrough
case 6:
fmt.Println("integer <= 6")
fallthrough
case 7:
fmt.Println("integer <= 7")
fallthrough
case 8:
fmt.Println("integer <= 8")
fallthrough
default:
fmt.Println("default case")
}
}
是。 fallthrough語句將控制權轉移到表達式開關中的下一個case子句。 轉移控制權時不考慮下一種情況的表達式。
“ fallthrough”語句將控制權轉移到表達式“ switch”語句中下一個case子句的第一個語句。 它只能用作該子句中的最終非空語句。
這是關於表達式開關的 :
在case或default子句中,最后一個非空語句可以是(可能標記為)“ fallthrough”語句,以指示控制權應從此子句的末尾流到下一個子句的第一個語句。 否則,控制流到“ switch”語句的末尾。 除了表達式開關的最后一個子句外,“ fallthrough”語句可能作為所有其他語句的最后一個語句出現。
那就對了。 fallthrough
語句使它從case子句的最后一條語句轉到下一條的第一個語句,從而跳過后面的case評估。 從規格 :
在case或default子句中,最后一個非空語句可以是(可能標記為)“ fallthrough”語句,以指示控制權應從此子句的末尾流到下一個子句的第一個語句。 否則,控制流到“ switch”語句的末尾。 除了表達式開關的最后一個子句外,“ fallthrough”語句可能作為所有其他語句的最后一個語句出現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.