赋值运算符
let b = 10
var a = 5
a = b
// a 现在等于 10
算术运算符
1 + 2 // 等于 3
5 - 3 // 等于 2
2 * 3 // 等于 6
10.0 / 2.5 // 等于 4.0
求余运算符
9 % 4 // 等于 1
一元负号运算符
let three = 3
let minusThree = -three // minusThree 等于 -3
let plusThree = -minusThree // plusThree 等于 3, 或 "负负3"
一元正号运算符
let minusSix = -6
let alsoMinusSix = +minusSix // alsoMinusSix 等于 -6
组合赋值运算符
var a = 1
a += 2
// a 现在是 3
比较运算符
-
等于(
a == b
) -
不等于(
a != b
) -
大于(
a > b
) -
小于(
a < b
) -
大于等于(
a >= b
) -
小于等于(
a <= b
)
三元运算符
let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight 现在是 90
空合运算符
let defaultColorName = "red"
var userDefinedColorName: String? //默认值为 nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName 的值为空,所以 colorNameToUse 的值为 "red"
??就是判断前面的数据,若不为空,则进行强制解包返回前面的值,若为空则返回后面的值
区间运算符
闭区间运算符
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
半开区间运算符
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
单侧区间
for name in names[2...] {
print(name)
}
// Brian
// Jack
for name in names[...2] {
print(name)
}
// Anna
// Alex
// Brian
逻辑运算符
-
逻辑非(
!a
) -
逻辑与(
a && b
) -
逻辑或(
a || b
)