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
}