基本的操作符
赋值
可以用 =
赋值,但和 C 不同,它不返回任何值:
let b = 10
var a = 5
a = b
也可以用来分解一个元组:
let (x, y) = (1, 2)
数学运算
组合赋值
比较
三目运算符
空值合并
空值合并 ??
会在左操作数为空的时候返回右操作数,其中:
左操作数应当为一个可选值;
右操作数应当为左操作数所可选的类型。
let defaultColor = "red"
var userDefinedColor: String? // 默认为 nil
var colorName = userDefinedColor ?? defaultColor // => "red"
userDefinedColor = "green"
colorName = userDefinedColor ?? defaultColor // => "green"
区间
闭区间
可以用 ...
创建闭区间:
for index in 1...5 {
print("\(index)")
} // 会打印 1、2、3、4、5
半开区间
可以用 ..<
创建半开区间:
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("Person \(i + 1) is called \(names[i])")
} // 所有人的名字都会被打印
单侧区间
可以省略左操作数 or 右操作数形成单侧区间:
for name in names[2...] {
print(name)
} // 打印 "Brian"、"Jack"
for name in names[..<2] {
print(name)
} // 打印 "Anna"、"Alex"
不仅在下标方法中,其他的上下文中也可以用。也可以对区间内内容进行检测:
let range = ...5
range.contains(7) // false
range.contains(-1) // true