跳到主要内容

基本的操作符

赋值

可以用 = 赋值,但和 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

逻辑

参考

Basic Operators - docs.swift.org