根据 Apple 文档,可选链接如下:
如果可选值非零,则通过在希望调用属性、方法或下标的可选值后放置问号 (?) 来指定可选链接。...当可选项为 nil 时,可选项链接优雅地失败...
我对此的解释是,如下结构是可选链接:
someMasterObject.possiblyNilHandler?.handleTheSituation()
...并且如果处理程序不为零,上述行将调用 handleTheSituation 方法,如果处理程序为零,则优雅地失败(跳过行)。
然而,我看到的几乎所有可选链接示例都使用“if let”构造,如下所示:
if let handler = someMasterObject.possiblyNilHandler{
handler.handleTheSituation()
}
事实上,我在网上找到的文档和示例大量使用了与可选链接相关的“if let”结构,看起来好像是可选链接。
但是,我是否正确假设我的第一个示例是支持使用可选链接,并且 if let 构造是使用(或密切相关)可选链接的另一种构造?