一尘不染

Swift IF LET如何评估?

swift

我已经在Swift网站上看​​到了这段代码,并在这里看到了许多帖子,我试图掌握基础知识。如何评估这条线?

if let name = optionalName {

我很困惑,因为它不是name ==可选名称,而是分配值,那么该报告如何报告为真,为什么当您用john
appleseed替换为nil时它不为真,因为它仍然相等?

var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
    greeting = "Hello, \(name)"
}

阅读 235

收藏
2020-07-07

共1个答案

一尘不染

基本上,这句话说:“如果可以让新变量name等于的非可选版本optionalName,请执行以下操作”。正如Martin所指出的,这称为Optional
Binding

它的唯一目的是测试可选变量是否包含实际值,并将非可选形式绑定到临时变量。这是“解包”可选项或换句话说,访问可选项中包含的值的安全方法。绝不测试任何形式的相等性。它仅测试可选值中是否存在值。

2020-07-07