|
导读
使用 Switch 语句匹配枚举值
你可以使用switch语句匹配单个枚举值:
directionToHead = .south
switch directionToHead {
case .north:
print("Lots of planets have a north")
case .south:
print("Watch out for penguins")
case .east:
print("Where the sun rises")
case .west:
print("Where the skies are blue")
}
// 打印 "Watch out for penguins”
你可以这样理解这段代码:
“判断directionToHead的值。当它等于.north,打印“Lots of planets have a north”。当它等于.south,打印“Watch out for penguins”。”
……以此类推。
正如在控制流中介绍的那样,在判断一个枚举类型的值时,switch语句必须穷举所有情况。如果忽略了.west这种情况,上面那段代码将无法通过编译,因为它没有考虑到CompassPoint的全部成员。强制穷举确保了枚举成员不会被意外遗漏。
当不需要匹配每个枚举成员的时候,你可以提供一个default分支来涵盖所有未明确处理的枚举成员:
let somePlanet = Planet.earth
switch somePlanet {
case .earth:
print("Mostly harmless")
default:
print("Not a safe place for humans")
}
// 打印 "Mostly harmless”
|
|