在Swift编程语言中,switch
语句是一个强大的分支结构,用于根据某个表达式的值执行不同的代码块。相较于C、Objective-C等其他语言中的switch
,Swift提供了一些增强和安全特性:
无默认Fallthrough:
Swift中的switch
不会从一个匹配的case自动“跌落”到下一个case执行,除非你明确使用了fallthrough
关键字。这意味着一旦匹配到一个case并执行了相应的代码块后,switch
语句会自动终止,不需要像在C语言中那样每个case后面都添加break
语句。强制完整性检查:
每个case分支内部必须至少包含一条语句(即使该语句是空的),或者使用break
、fallthrough
或控制转移语句(如return
)。这有助于避免未预期的行为。多值匹配:
一个case可以匹配多个值,只需用逗号分隔各个值即可。let number = 3 switch number { case 1, 2, 3: print("Number is between 1 and 3") default: print("Number is something else") }
范围匹配:
case还可以匹配特定的数值范围。let year = 2025 switch year { case 2020...2024: // 匹配2020到2024之间的任何年份 print("Years in this range.") default: print("Year outside the range.") }
元组匹配:
switch
可以处理元组类型的值,同时匹配多个变量。
```swift
let point = (x: 3, y: 4)
switch point {
case (0, 0):print("Origin")
case (_, 0):
print("X-axis")
case (0, _):
print("Y-axis")
default:
print("Somewhere else on the plane")
}
模式匹配与where子句:
可以使用模式匹配结合where
子句来增加更复杂的条件判断。let courseName = "Swift Programming" switch courseName { case let str where str.hasSuffix("Swift"): print("\(courseName) is a Swift-related course.") default: print("\(courseName) is not a Swift course.") }
以上就是Swift中switch
语句的基本和一些高级用法。