我看到这个代码在Swift网站和各种帖子在这里,我想抓住的基础。如何评估此行?
if let name = optionalName {
我很困惑,因为它不是name ==可选名称,它分配的值,所以如何报告true和
为什么当你用nil替换john appleseed时它不是真的,因为它仍然是平等的?
var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = optionalName { greeting = "Hello,\(name)" }
基本上这一行是说,“如果你可以让新的变量名称等于非可选版本的optionalName,请使用它”。正如马丁指出的,这叫
Optional Binding。
它的唯一目的是测试可选变量是否包含实际值,并将非可选形式绑定到临时变量。这是“解开”可选项的安全方式,换句话说,访问可选项中包含的值。它绝不是测试任何类型的平等。它只是测试一个可选的值内的存在。