GitHub License GitHub Tag Swift Package Manager Compatible Carthage Compatible Written in Swift Supported platforms Build Status

可选赋值 (OptionalAssign)

自定义赋值运算符,可以安全地解包可选类型,并且如果右侧的可选类型没有值(即等于 nil),则保持接收者(左侧的表达式)的现有值不变。

何时使用

在以下情况下使用此运算符

额外福利:右侧的值将在赋值前自动转换为接收者类型,因此无需显式转换。

如何使用

假设您有一个属性需要始终有一个值,因此您以默认值开始

var title = 'Default value'

...然后您得到一个字典,可能包含 title 的新值

let aDict: [String: AnyObject] = ... // maybe got from network?

这是我们如何使用标准 Swift 语法尝试从字典中获取新的 title

if let newTitleValue = aDict["title"] as? String
{
    // yes it has a non-nil value
    title = newTitleValue
}

使用可选赋值运算符,您只需这样做即可完成同样的事情

title ?= aDict["title"]

有关更多示例,请参见单元测试。