switch 语句
一个简单的 switch
声明:
switch a + b {
case c:
// do something
case d:
// do something else
default:
// do something entirely different
}
上面的例子相当于:
if a + b == c {
// do something
} else if a + b == d {
// do something else
} else {
// do something entirely different
}
default
子句是可选的,当且仅当所有情况都不比较时才会执行,即使它没有出现在最后,这是可以接受的。以下内容与第一个示例在语义上相同:
switch a + b {
default:
// do something entirely different
case c:
// do something
case d:
// do something else
}
如果你打算在 default
子句中使用 fallthrough
语句,这可能很有用,该语句必须是案例中的最后一个语句,并导致程序执行继续下一个案例:
switch a + b {
default:
// do something entirely different, but then also do something
fallthrough
case c:
// do something
case d:
// do something else
}
空开关表达式隐含地为 true
:
switch {
case a + b == c:
// do something
case a + b == d:
// do something else
}
Switch 语句支持类似于 if
语句的简单语句:
switch n := getNumber(); n {
case 1:
// do something
case 2:
// do something else
}
如果它们共享相同的逻辑,则可以将它们组合在逗号分隔的列表中:
switch a + b {
case c, d:
// do something
default:
// do something entirely different
}