前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 比较运算和三目条件运算

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

作者头像
Swift社区
发布2021-11-26 11:11:30
5100
发布2021-11-26 11:11:30
举报
文章被收录于专栏:Swift社区

一:比较运算

所有标准 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 基本运算符之赋值

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swift社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档