2.基本运算符
求余运算符:在对负数 b 求余时, b 的符号会被忽略略。这意味着 a % b 和 a % -b 的结果是相同的。
-
元组比较:当元组中的元素都可以被比较,且长度相同,你也可以使用这些运算符来⽐比较它们的⼤小。
("blue", -1) < ("purple", 1) // 正常,⽐比较的结果为 true ("blue", false) < ("purple", true) // 错误,因为 < 不不能⽐比较布尔类型 注意 Swift 标准库只能⽐比较七个以内元素的元组⽐比较函数。如果你的元组元素超过七个时,你需要 ⾃自⼰己实现⽐比较运算符。
-
空合运算符:空合运算符( a ?? b )将对可选类型 a 进行空判断,如果 a 包含一个值就进行解包,否
则就返回一个默认值 b 。表达式 a 必须是 Optional 类型。默认值 b 的类型必须要和 a 存
储值的类型保持一致。空合运算符是对以下代码的简短表达方法: a != nil ? a! : b 注意 如果 a 为非空值( non-nil ),那么值 b 将不会被计算。这也就是所谓的 短路求值。
-
区间运算符
1.闭区间运算符:闭区间运算符(a...b)定义一个包含从a到b(包括 a 和 b)的所有值的区间。a的值不能超过b 。 for index in 1...5 { print("\(index * 5)") } 2.半开区间运算符:半开区间运算符( 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])") } 3.单侧区间:names[2...]表示["Brian", "Jack"],names[...2]表示["Anna", "Alex", "Brian",],names[..<2]表示["Anna", "Alex"]
短路计算。逻辑与(&&):如果第一个值为 false,那么是不去计算第⼆个值的。逻辑或(||):当左端的表达式为 true 时,将不计算右边的表达式了