在阅读官方Apple指南时,我发现了这个
var optionalName: String? = "John Appleseed"
var greeting = "Hello!"
if let name = optionalName {
greeting = "Hello \(name)"
}
有一个不变的声明和赋值,我作为一个初学者 - 期望一个表达式返回boolean
。但是这个if
语句的条件似乎是true
作为值,因为括号内的代码正在执行。
常量的初始化是否返回boolean
值或if
语句可用作条件的内容?
答案 0 :(得分:0)
这称为可选绑定。引用基础知识 - > Optionals - > Swift语言指南的可选绑定部分。
使用可选绑定来查明可选项是否包含 值,如果是,则使该值可用作临时常量 或变量。可选绑定可与if和while语句一起使用 检查可选内部的值,并提取该值 变成一个常数或变量,作为单一动作的一部分。
这个if let
构造正在做的是检查someOptional
是否存在。如果它不是nil
/ .None
那么它就会"绑定"常量的可选值。
if let constantName = someOptional {
...
}
这可以被认为是:
if someOptional != nil {
let constantName = someOptional!
....
}