Swift匹配枚舉值和Switch語句
匹配枚舉值和Switch
語句
你可以匹配單個枚舉值和switch
語句:
directionToHead = .South
switch directionToHead {
case .North:
println("Lots of planets have a north")
case .South:
println("Watch out for penguins")
case .East:
println("Where the sun rises")
case .West:
println("Where the skies are blue")
}
// 輸出 "Watch out for penguins”
你可以如此理解這段代碼:
“考慮directionToHead
的值。當它等於.North
,打印“Lots of planets have a north”
。當它等於.South
,打印“Watch out for penguins”
。”
等等依次類推。
正如在控製流(Control Flow)中介紹,當考慮一個枚舉的成員們時,一個switch
語句必須全麵。如果忽略了.West
這種情況,上麵那段代碼將無法通過編譯,因為它冇有考慮到CompassPoint
的全部成員。全麵性的要求確保了枚舉成員不會被意外遺漏。
當不需要匹配每個枚舉成員的時候,你可以提供一個默認default
分支來涵蓋所有未明確被提出的任何成員:
let somePlanet = Planet.Earth
switch somePlanet {
case .Earth:
println("Mostly harmless")
default:
println("Not a safe place for humans")
}
// 輸出 "Mostly harmless”