Skip to main content
 首页 » 操作系统

swift之为什么有一个在 if-let 语句中标记以查看可选值

2024年01月01日57sxdcgaq8080

我正在阅读以下书籍,第 32 页上有一个代码片段。 2014 年 12 月:第一版。

Swift Development with CocoaJonathon Manning, Paris Buttfield-Addison, and Tim Nugent

我知道我们可以使用 ? 使 vairbale 可选,并使用 ! 在 Swift 中打开可选的 vairbale

var str: String? = "string" 
if let theStr = str? { 
    println("\(theStr)") 
} else { 
    println("nil") 
} 

为什么我们需要 ? 在这一行 if let theStr = str? 没有它似乎工作正常并且没有任何区别。


请您参考如下方法:

你不需要它,也不应该拥有它。可选绑定(bind)评估可选。如果为零,则停止。如果它不是 nil,它会将值分配给您需要的变量,然后执行 if 语句大括号内的代码。

编辑:

自首次以测试版形式发布以来,该语言略有变化。我的猜测是?过去是必需的。

我从 Github 使用的一些示例项目无法编译,我不得不编辑它们才能使它们工作。这可能是语法略有变化的示例。