Swift 比较运算和三目条件运算

一:比较运算

所有标准 C 中的比较运算都可以在 Swift 中使用。

等于 a == b
不等于 a!=b
大于 a > b
小于 a < b
大于等于 a >= b
小于等于 a <= b

注意: Swift 也提供恒等 === 和不恒等 !== 这两个比较符来判断两个对象是否引用同一个 对象实例。更多细节在 类与结构。

每个比较运算都返回了一个标识表达式是否成立的布尔值:

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 条件:

let name = "world"
if name == "world" {
    print("Hello, world")
} else {
    print("对不起, \(name), 我不认识你!")
}
// 输出 "hello, world", 因为 `name` 就是等于 "world"

二:三目条件运算

三目条件运算的特殊在于它是有三个操作数的运算符, 它的原型是 问题 ? 答案1: 答案2。它简洁地表达根据 问题 成立与否作出二选一的操作. 如果 问题 成立, 返回 答案 1 的结 果; 如果不成立, 返回 答案 2 的结果。

使用三目条件运算简化了以下代码:

if question: {
    answer1
} else {
    answer2
}

这里有个计算表格行高的例子。如果有表头, 那行高应比内容高度要高出 50 像素; 如果没 有表头, 只需高出 20 像素。

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight 现在是 90

这样写会比下面的代码简洁:

let contentHeight1 = 40
let hasHeader1 = true
var rowHeight1 = contentHeight
if hasHeader {
    rowHeight1 = rowHeight1 + 50
} else {
    rowHeight1 = rowHeight1 + 20
}
// rowHeight1 现在是 90

第一段代码例子使用了三目条件 运算, 所以一行代码就能让我们得到正确答案。这比第二段代码简洁得多, 无需将 rowHeight 定义成变量, 因为它的值无需在 if 语句中改变。

三目条件运算提供有效率且便捷的方式来表达二选一的选择。需要注意的事, 过度使用三目条件运算就会由简洁的代码变成难懂的 代码. 我们应避免在一个组合语句使用多个三目条件运算符。

欢迎关注公众号 [Swift 社区]:

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网罗开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值