Swift 自我守护

Swift guard with self

我在swift中跳弱强舞是这样的:

dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0), { [weak self] in
    guard let `self` = self else {
        return
    }
    self.doSomething(1)
})

在此之前,我使用 strongSelf 而不是 `self`。在一个网站上,我看到我可以使用这个字符 ` .

但是这个角色在 Swift 中做了什么?没有这个我不能分配给自己。为什么这行得通?使用它是一种好习惯吗?

Swift Programming Language

出示一张纸条,内容如下:

If you need to give a constant or variable the same name as a reserved Swift keyword, surround the keyword with backticks (`) when using it as a name. However, avoid using keywords as names unless you have absolutely no choice.

编辑:

我这样做的方法是像您以前那样使用任何其他名称,例如 strongSelf。因为最后,`self` 和 strongSelf 都将成为一些要采取行动的变量。所以我建议我们是否可以使用其他一些很好的变量名。

一些更新(我不会在这里提及何时使用它,而是如何使用它)。

从 Swift 4.2 使用应该是这样的:

guard let self = self else { return }

使用`基本上是基于编译器错误,因此不建议使用。

要获得更多信息,没有比 this 更好的来源了。解释所有背后的原因和其他注意事项。

简而言之,以上与代码中看到的其他情况更一致,例如:

if let myVariable = myVariable

所以不创建confusion/discrepancies。