Swift 中的修辞符有以下几种:
- 空合并运算符(nil coalescing operator):用 ?? 表示,其作用是如果左侧表达式不为 nil,则返回左侧表达式的值,否则返回右侧表达式的值。
代码演示:
let foo: String? = nil
let bar: String = "Hello"
let result = foo ?? bar
print(result) // 输出 "Hello"
- 可选链(optional chaining):用 ? 表示,其作用是在访问可选类型属性、方法或下标时,如果可选项没有值,则返回 nil 而不是产生运行时错误。如果可选项有值,则可继续使用点号(.)来访问它的属性、方法或下标。
代码演示:
class Person {
var address: Address?
}
class Address {
var city: String?
}
let person = Person()
let city = person.address?.city // 如果 address 为 nil,则 city 的值为 nil;否则 city 的值为 address 的 city 属性
- 隐式解包可选值(implicitly unwrapped optionals):用 ! 表示,其作用是将一个可选类型的值解包为非可选类型的值。如果一个隐式解包可选值为 nil,则尝试访问它的值将导致运行时错误。
代码演示:
let foo: String! = "Hello" // 使用隐式解包可选值
let bar: String = foo // foo 自动解包为非可选类型的值
print(bar) // 输出 "Hello"
以上是 Swift 中常用的修辞符,并给出了代码演示。