目录:
- 运算符
- 元组比较
- 空和运算符
- 区间运算符
运算符
+, -, *, /, %, =, +=, -=, *=, /= 算术运算符 >, <, ==, >=, <=, != 比较运算符 ===, !== 值恒等运算符 ? : 三目运算符 ?? 空和运算符 !, &&, || 逻辑运算符
元组比较
当元组中的元素值可以比较时,元组也可以使用比较运算符进行大小比较。
比较元组大小会按照从左到右、逐值比较的方式,直到发现有两个值不等时停止。如果所有的值都相等,则该对元组相等。
(1, "zebra") < (2, "apple") // true,因为 1 小于 2 (3, "apple") < (3, "bird") // true,因为 3 等于 3,但是 apple 小于 bird (4, "dog") == (4, "dog") // true,因为 4 等于 4,dog 等于 dog
元组中Bool值不可比较,所以包含Bool变量的元组都不可以比较。
空和运算符
空合运算符( a ?? b )将对可选类型 a 进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b 。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存储值的类型保持一致。
空合运算符是对以下代码的简短表达方法:
a != nil ? a! : b
区间运算符
闭区间运算符 a...b 定义一个包含从 a 到 b (包括a和b)的所有值的区间。 a的值不能超过b。
for index in 1...5 { print("(index) * 5 = (index * 5)") } // 1 * 5 = 5 // 2 * 5 = 10 // 3 * 5 = 15 // 4 * 5 = 20 // 5 * 5 = 25
半开区间运算符 a..<b 定义一个从 a 到 b 但不包括 b 的区间。
let names = ["Anna", "Alex", "Brian", "Jack"] let count = names.count for i in 0..<count { print("第 (i + 1) 个人叫 (names[i])") } // 第 1 个人叫 Anna // 第 2 个人叫 Alex // 第 3 个人叫 Brian // 第 4 个人叫 Jack