赋值运算符 (=)
1 2 3 4
| let b = 10 var a = 5 a = b
|
算术运算符
1 2 3 4
| 1 + 2 5 - 3 2 * 3 10.0 / 2.5
|
加法运算符也可用于String的拼接:
求余运算符 (%)
自增和自减 (++) (–)
- 当++前置的时候,先自増再返回。
- 当++后置的时候,先返回再自增。
1 2 3
| var a = 0 let b = ++a let c = a++
|
一元负号运算符
1 2 3
| let three = 3 let minusThree = -three let plusThree = -minusThree
|
一元正号运算符
一元正号(+)不做任何改变地返回操作数的值:
1 2
| let minusSix = -6 let alsoMinusSix = +minusSix
|
组合赋值运算符
表达式a += 2是a = a + 2的简写
比较运算符
- 等于(a == b)
- 不等于(a != b)
- 大于(a > b)
- 小于(a < b)
- 大于等于(a >= b)
- 小于等于(a <= b)
1 2 3 4 5 6
| 1 == 1 2 != 1 2 > 1 1 < 2 1 >= 1 2 <= 1
|
三目运算符 (a?b:c)
问题 ? 答案1 : 答案2
如果问题成立,返回答案1的结果; 如果不成立,返回答案2的结果。
空合运算符 (a ?? b)
空合运算符(a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b.这个运算符有两个条件:
- 表达式a必须是Optional可选类型
- 默认值b的类型必须要和a存储值的类型保持一致
1 2 3 4 5 6
| let defaultColorName = "red" var userDefinedColorName: String?
var colorNameToUse = userDefinedColorName ?? defaultColorName
|
1 2 3
| userDefinedColorName = "green" colorNameToUse = userDefinedColorName ?? defaultColorName
|
区间运算符
闭区间运算符 (a…b)
1 2 3 4 5 6 7 8
| for index in 1...5 { print("\(index) * 5 = \(index * 5)") }
|
半开区间运算符 (a..<b)
1 2 3 4 5 6 7 8 9
| let names = ["Anna", "Alex", "Brian", "Jack"] let count = names.count for i in 0..<count { print("第 \(i + 1) 个人叫 \(names[i])") }
|
逻辑运算
逻辑非 (!a)
1 2 3 4 5
| let allowedEntry = false if !allowedEntry { print("ACCESS DENIED") }
|
逻辑与 (a && b)
1 2 3 4 5 6 7 8
| let enteredDoorCode = true let passedRetinaScan = false if enteredDoorCode && passedRetinaScan { print("Welcome!") } else { print("ACCESS DENIED") }
|
逻辑或 (a || b)
1 2 3 4 5 6 7 8
| let hasDoorKey = false let knowsOverridePassword = true if hasDoorKey || knowsOverridePassword { print("Welcome!") } else { print("ACCESS DENIED") }
|
使用括号来明确优先级
1 2 3 4 5 6
| if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword { print("Welcome!") } else { print("ACCESS DENIED") }
|