我在一個舊專案中找到了這段代碼:
guard let `self` = self else {
return .empty()
}
static let `default`: LayoutParameters = { ..some code.. }
我假設 `` 在舊版本的語言中使用。但我想知道它為什么被使用/被使用。另外,我想知道如果不更改代碼并在最新版本的 Swift 和 Xcode 中“保持原樣”是否有任何問題。它作業正常嗎?我應該用
guard let self = self else ......
uj5u.com熱心網友回復:
self是關鍵字,通常不能在背景關系之外的地方使用關鍵字和保留字。但是,這有時會產生問題。出于這個原因,有一種特殊的語法可以使關鍵字成為普通識別符號,例如:
enum MyEnum: String {
case `default`
}
(另見Swift 變數名帶有 ` (backtick))
歷史上self不允許作為內部常量名稱guard-let-else,因此通常(ab)使用反引號。從 Swift 4.2 開始不再需要它們。
該代碼仍然可以正常作業,因為您可以將任何識別符號包裝在反引號中,并且它只是一個普通識別符號。
uj5u.com熱心網友回復:
Xcode IDE 建議您使用``來幫助在 Foundation SDK中使用相同的默認密鑰。
示例:default是 Foundation 中的常量名,如果要使用 default 來創建新的變數名,則default需要添加``。
但是您使用SwiftLint默認規則,使用默認的聯系人名稱是一種代碼味道。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/438147.html
