在 Xcode 15 附带的 Swift 5.9 引入了一个不错的功能,它允许我们使用 if 和 switch 语句作为表达式。我们可以更有条理的为变量赋值,并使用 if 和 switch 声明变量,有点像三目运算。
举个简单的例子,我们可以根据根据学生的成绩来返回是否合格:
/// 检查学生成绩是否合格
/// - Parameter score: 传入一个分数
/// - Returns: 返回“及格”或者“不及格”
func scoreString(with score: Int) -> String {
let result = if score >= 60 { "及格" } else { "不及格" }
return result
}
let score = 80
print(scoreString(with: score)) // 打印 "及格"
有人可能会疑惑,这和三目运算的区别在哪里?
确实,我们可以用三目运算 let result = score >= 60 ? "及格" : "不及格" 实现这个函数,还比使用 if 更简单。
我个人觉得使用 if 的好处是当条件分支比较多的时候调理更加清晰,代码更易读,也更容易维护。另外在编译器编译的时候三目运算会被当成是一个语句,而 if/else 会被当成两个语句,这对编译会有些影响。
switch 可以这样使用:
/// 检查学生成绩,返回 ABCD 的格式
/// - Parameter score: 传入一个分数
/// - Returns: 返回“A”/“B”/“C”/“D”
func scoreString(with score: Int) -> String {
let result = switch score {
case 90...100: "A"
case 80...90: "B"
case 60...80: "C"
case 0...60: "D"
default: "Unknown"
}
return result
}
let score = 85
print(scoreString(with: score)) // 打印 "B"
点击下方公众号卡片,关注我,每天分享一个关于 iOS 的新知识
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里只是同步,想要获得更好的体验就扫描下方二维码关注我吧!