发布于 2015-06-14 01:54:06 | 163 次阅读 | 评论: 0 | 来源: 网络整理
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”