From: Robert Griesemer
+SwitchStat = ExprSwitchStat | TypeSwitchStat .
+
+
There are two forms: expression switches and type switches.
In an expression switch, the cases contain expressions that are compared
against the value of the switch expression.
@@ -3159,10 +3164,9 @@ the expression true
.
-SwitchStat = ExprSwitchStat | TypeSwitchStat . -ExprSwitchStat = "switch" [ [ SimpleStat ] ";" ] [ Expression ] "{" { ExprCaseClause } "}" . -ExprCaseClause = ExprSwitchCase ":" [ StatementList ] . -ExprSwitchCase = "case" ExpressionList | "default" . +ExprSwitchStat = "switch" [ [ SimpleStat ] ";" ] [ Expression ] "{" { ExprCaseClause } "}" . +ExprCaseClause = ExprSwitchCase ":" [ StatementList ] . +ExprSwitchCase = "case" ExpressionList | "default" .
@@ -3217,10 +3221,10 @@ in the type guard.
-TypeSwitchStat = "switch" [ [ SimpleStat ] ";" ] TypeSwitchGuard "{" { TypeCaseClause } "}" . -TypeSwitchGuard = identifier ":=" Expression "." "(" "type" ")" . -TypeCaseClause = TypeSwitchCase ":" [ StatementList ] . -TypeSwitchCase = "case" type | "default" . +TypeSwitchStat = "switch" [ [ SimpleStat ] ";" ] TypeSwitchGuard "{" { TypeCaseClause } "}" . +TypeSwitchGuard = identifier ":=" Expression "." "(" "type" ")" . +TypeCaseClause = TypeSwitchCase ":" [ StatementList ] . +TypeSwitchCase = "case" type | "default" .
@@ -3642,9 +3646,9 @@ the creation of v
.
A "fallthrough" statement transfers control to the first statement of the -next case clause in a "switch" statement (§Switch statements). It may -be used only as the final non-empty statement in a case or default clause in a -"switch" statement. +next case clause in a expression "switch" statement (§Expression switches). It may +be used only as the final non-empty statement in a case or default clause in an +expression "switch" statement.