Swift =运算符不返回任何内容,那么可选绑定如何工作?

ama*_*mar 1 swift

根据文档,Swift "="运算符不会返回任何内容,因此不能代替"=="。那么可选绑定如何工作?

喜欢

    if let a = optionalStringFoo {
      //do some thing
    } else {
      //do something
    }
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 5

let a = optionalStringFoo 不返回(布尔值)值,请注意

if (let a = optionalStringFoo) { ... }
Run Code Online (Sandbox Code Playgroud)

没有编译。

可选绑定是Swift语法中内置的if语句的特例。Swift语言参考中的语句显示以下结果:

if语句 如果条件列表代码块else子句opt

条件列表?条件| 条件列表

条件?表达| 可用性条件| 案例条件 可选绑定条件

可选绑定条件?模式初始化器| var模式初始化器

模式?标识符模式类型注释opt

标识符模式?识别码

初始化器?=表达式

因此,在

if let a = optionalStringFoo { ... }
Run Code Online (Sandbox Code Playgroud)

if关键字之后是“任选的结合条件”,其中a是在“标识符纹”和= optionalStringFoo是“初始化”。