swift 中的 `self` 是什么?
What is `self` in swift?
我在其中一个旧项目中找到了这段代码:
guard let `self` = self else {
return .empty()
}
static let `default`: LayoutParameters = { ..some code.. }
我假设 `` 在旧版本的语言中使用。但我想知道为什么使用 used/was。另外,我想知道如果在Swift和Xcode的最新版本中不更改代码并“保持原样”是否有任何问题。它工作正常吗?我应该用
替换它吗
guard let self = self else ......
Xcode IDE 建议您使用 `` 以帮助在中使用相同的 默认密钥 基础 SDK。
例子:default是Foundation中的一个常量名,如果你想使用default创建新的变量名是default你需要添加``.
但是您使用 SwiftLint
和默认规则,使用默认的 contants 名称是一种代码味道。
self
是关键字,通常您不能在上下文之外的地方使用关键字和保留字。然而,这有时会产生问题。出于这个原因,有一种特殊的语法可以使关键字成为普通标识符,例如:
enum MyEnum: String {
case `default`
}
(另见 )
历史上 self
不允许作为 guard-let-else
中的常量名称,因此通常(滥用)使用反引号。
自 Swift 4.2.
以来不再需要它们
代码仍然可以正常工作,因为您可以将任何标识符包装在反引号中,它只是一个普通标识符。
我在其中一个旧项目中找到了这段代码:
guard let `self` = self else {
return .empty()
}
static let `default`: LayoutParameters = { ..some code.. }
我假设 `` 在旧版本的语言中使用。但我想知道为什么使用 used/was。另外,我想知道如果在Swift和Xcode的最新版本中不更改代码并“保持原样”是否有任何问题。它工作正常吗?我应该用
替换它吗guard let self = self else ......
Xcode IDE 建议您使用 `` 以帮助在中使用相同的 默认密钥 基础 SDK。
例子:default是Foundation中的一个常量名,如果你想使用default创建新的变量名是default你需要添加``.
但是您使用 SwiftLint
和默认规则,使用默认的 contants 名称是一种代码味道。
self
是关键字,通常您不能在上下文之外的地方使用关键字和保留字。然而,这有时会产生问题。出于这个原因,有一种特殊的语法可以使关键字成为普通标识符,例如:
enum MyEnum: String {
case `default`
}
(另见
历史上 self
不允许作为 guard-let-else
中的常量名称,因此通常(滥用)使用反引号。
自 Swift 4.2.
代码仍然可以正常工作,因为您可以将任何标识符包装在反引号中,它只是一个普通标识符。