https://www.cnswift.org/basic-operators
https://gitbook.swiftgg.team/swift/swift-jiao-cheng/02_basic_operators
运算符是一种用来检查、改变或者合并值的特殊符号或组合符号。
举例来说,加运算符( + )能够把两个数字相加(比如 let i = 1 + 2 )。更复杂的栗子包括逻辑与运算 && 比如 if enteredDoorCode && passedRetinaScan 。
一元、二元、三元运算符
运算符包括一元、二元、三元:
- 一元运算符对一个目标进行操作(比如 -a )。一元前缀运算符在目标之前直接添加(比如 !b ),同时一元后缀运算符直接在目标末尾添加(比如 c! )。
- 二元运算符对两个目标进行操作(比如 2 + 3 )同时因为它们出现在两个目标之间,所以是中缀。
- 三元运算符操作三个目标。如同 C,Swift语言也仅有一个三元运算符,三元条件运算符( a ? b : c )。
赋值运算符
赋值运算符( a = b )可以初始化或者更新 a 为 b 的值
算术运算符
标准算术运算符
Swift 对所有的数字类型支持四种标准算术运算符:
加 ( + )
减 ( - )
乘 ( * )
除 ( / )
余数运算符
余数运算符( a % b )可以求出多少个 b 的倍数能够刚好放进 a 中并且返回剩下的值(就是我们所谓的余数)。
一元加减号运算符
数字值的正负号可以用前缀 – 来切换,我们称之为 一元减号运算符。
一元加号运算符 ( + )直接返回它操作的值,不会对其进行任何的修改。
尽管一元加号运算符实际上什么也不做,你还是可以对正数使用它来让你的代码对一元减号运算符来说显得更加对称。
比较运算符
Swift 支持所有 C 的标准比较运算符:
相等 ( a == b )
不相等 ( a != b )
大于 ( a > b )
小于 ( a < b )
大于等于 ( a >= b )
小于等于 ( a <= b )
三元条件运算符
三元条件运算符是一种有三部分的特殊运算,它看起来是这样的: question ? answer1 : answer2 。这是一种基于 question 是真还是假来选择两个表达式之一的便捷写法。如果 question 是真,则会判断为 answer1 并且返回它的值;否则,它判断为 answer2 并且返回它的值。
合并空值运算符
合并空值运算符 ( a ?? b )如果可选项 a 有值则展开,如果没有值,是 nil ,则返回默认值 b 。表达式 a 必须是一个可选类型。表达式 b 必须与 a 的储存类型相同。
区间运算符
闭区间运算符
闭区间运算符( a...b )定义了从 a 到 b 的一组范围,并且包含 a 和 b 。 a 的值不能大于 b 。
半开区间运算符
半开区间运算符( a..<b )定义了从 a 到 b 但不包括 b 的区间,即 半开 ,因为它只包含起始值但并不包含结束值。(十奶注:其实就是左闭右开区间。)如同闭区间运算符, a 的值也不能大于 b ,如果 a 与 b 的值相等,那返回的区间将会是空的。
单侧区间
闭区间有另外一种形式来让区间朝一个方向尽可能的远——比如说,一个包含数组所有元素的区间,从索引 2 到数组的结束。在这种情况下,你可以省略区间运算符一侧的值。因为运算符只有一侧有值,所以这种区间叫做单侧区间。
逻辑运算符
逻辑运算符可以修改或者合并布尔逻辑值 true 和 false 。Swift 支持三种其他基于 C 的语言也包含的标准逻辑运算符
逻辑 非 ( !a )
逻辑 与 ( a && b )
逻辑 或 ( a || b )