一:比较运算
所有标准 C 中的比较运算都可以在 Swift 中使用。
等于 a == b
不等于 a!=b
大于 a > b
小于 a < b
大于等于 a >= b
小于等于 a <= b
注意: Swift 也提供恒等 === 和不恒等 !== 这两个比较符来判断两个对象是否引用同一个 对象实例。更多细节在 类与结构。
每个比较运算都返回了一个标识表达式是否成立的布尔值:
代码语言:javascript复制1 == 1 // true, 因为 1 等于 1
2 != 1 // true, 因为 2 不等于 1
2 > 1 // true, 因为 2 大于 1
1 < 2 // true, 因为 1 小于2
1 >= 1 // true, 因为 1 大于等于 1
2 <= 1 // false, 因为 2 并不小于等于 1
比较运算多用于条件语句, 如 if 条件:
代码语言:javascript复制let name = "world"
if name == "world" {
print("Hello, world")
} else {
print("对不起, (name), 我不认识你!")
}
// 输出 "hello, world", 因为 `name` 就是等于 "world"
二:三目条件运算
三目条件运算的特殊在于它是有三个操作数的运算符, 它的原型是 问题 ? 答案1: 答案2。它简洁地表达根据 问题 成立与否作出二选一的操作. 如果 问题 成立, 返回 答案 1 的结 果; 如果不成立, 返回 答案 2 的结果。
使用三目条件运算简化了以下代码:
代码语言:javascript复制if question: {
answer1
} else {
answer2
}
这里有个计算表格行高的例子。如果有表头, 那行高应比内容高度要高出 50 像素; 如果没 有表头, 只需高出 20 像素。
代码语言:javascript复制let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight (hasHeader ? 50 : 20)
// rowHeight 现在是 90
这样写会比下面的代码简洁:
代码语言:javascript复制let contentHeight1 = 40
let hasHeader1 = true
var rowHeight1 = contentHeight
if hasHeader {
rowHeight1 = rowHeight1 50
} else {
rowHeight1 = rowHeight1 20
}
// rowHeight1 现在是 90
第一段代码例子使用了三目条件 运算, 所以一行代码就能让我们得到正确答案。这比第二段代码简洁得多, 无需将 rowHeight 定义成变量, 因为它的值无需在 if 语句中改变。
三目条件运算提供有效率且便捷的方式来表达二选一的选择。需要注意的事, 过度使用三目条件运算就会由简洁的代码变成难懂的 代码. 我们应避免在一个组合语句使用多个三目条件运算符。
系列文章推荐阅读
Swift 基础之控制流
Swift 基础之常量和变量
Swift 基础之整数和浮点数
Swift 基础之类型
Swift 基础之布尔值和元组
Swift 基础之可选
Swift 基础之断言
Swift 基本运算符之数值运算
Swift 基本运算符之赋值