Swift 条件内赋值

Swift assignments inside conditions

我想知道这段代码的作用:

var something: String = "Hi"

if something = "Hello world!" {
    // Will this be executed?
}

它会分配给 something 变量并执行 if 主体吗?或者它会只为 if 主体设置该变量的值,而在外部它不会改变吗?或者跟nil有什么关系?

赋值不是 return 布尔值的表达式,因此不能像这样在 if 中使用。所以这不会编译。

(尽管您会收到误导性的编译器消息)

此模式仅适用于可能会失败的赋值 — 也就是说,如果您要为 returns 可选值的表达式的结果赋值。在这种情况下,您使用 if let,而不仅仅是 if

我们不能对 if 条件使用赋值运算符,你会 if let 假设你正在使用 可选类型

以下是一些运算符,可帮助您清楚地区分赋值运算符

=   assignment operator
==  is equal to
=== is identical to