术语
按操作对象数分为一元、二元和三元运算符:
- 一元:前置运算符
!a
、后置运算符b!
- 二元:1 + 2
- 三元:Swift 只有一个三元运算符,三目运算符(a ? b : c)
赋值运算符
- 初始化
let a = 1; let (x, y) = (1, 2)
- 更新值
var b = 2; b = 3
与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值。所以下面语句是无效的:
if x = y {
// 此句错误,因为 x = y 并不返回任何值
}
算数运算符
- 四则运算:加法(+)、减法(-)、乘法(*)、除法(/)
与 C 语言和 Objective-C 不同的是,Swift 默认情况下不允许在数值运算中出现溢出情况。但是你可以使用 Swift 的溢出运算符来实现溢出运算(如 a &+ b)。
- 求余运算: (a % b), 公式 a = (b × 倍数) + 余数,在对负数 b 求余时,b 的符号会被忽略。这意味着 a % b 和 a % -b 的结果是相同的。
9 % 4 // 等于 1
-9 % 4 // 等于 -1
9 % -4 //等于 1
- 一元负号运算符、一元正号运算符: 负数 -1,正数 +1(+号可以省略)
组合赋值运算符
把其他运算符和赋值运算(=)组合,如(+=)
比较运算符
- 等于(a == b)
- 不等于(a != b)
- 大于(a > b)
- 小于(a < b)
- 大于等于(a >= b)
- 小于等于(a <= b)
比较运算返回的结果为布尔值
三元运算符
使用方法与 C 和 OC 中条件表达式相同(a ? b : c)
空合运算符
a ?? b 等同于 a != nil ? a! : b,其中 a 必须为可选类型,b 的类型为 a 的值类型
区间运算符
Swift 提供了几种方便表达一个区间的值的区间运算符。
- a...b: 数学上的闭区间,包含 a,b
- a..<b:数学上的半开区间区间,只包含 a
- a...:单侧区间 还有例如...a 表示 、..<a表示
逻辑运算符
- 逻辑非(!a)
- 逻辑与(a && b)
- 逻辑或(a || b)
网友评论