我已经在Swift网站上看到了这段代码,并在这里看到了许多帖子,我试图掌握基础知识。如何评估这条线?
if let name = optionalName {
我很困惑,因为它不是name ==可选名称,而是分配值,那么该报告如何报告为真,为什么当您用john appleseed替换为nil时它不为真,因为它仍然相等?
var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello, \(name)" }
基本上,这句话说:“如果可以让新变量name等于的非可选版本optionalName,请执行以下操作”。正如Martin所指出的,这称为Optional Binding。
name
optionalName
它的唯一目的是测试可选变量是否包含实际值,并将非可选形式绑定到临时变量。这是“解包”可选项或换句话说,访问可选项中包含的值的安全方法。绝不测试任何形式的相等性。它仅测试可选值中是否存在值。