我正在浏览Alamofire的来源,并在this source file
中找到了哪个名称被反引号转义的变量open static let `default`: SessionManager = {
let configuration = URLSessionConfiguration.default
configuration.httpAdditionalHeaders = SessionManager.defaultHTTPHeaders
return SessionManager(configuration: configuration)
}()
然而,在使用变量的地方,没有反引号。反叛的目的是什么?
答案 0 :(得分:22)
要使用保留字作为标识符,请在其前后加上反引号。例如,class不是有效的标识符,但`class`是有效的。反引号不被视为标识符的一部分; `x`和x具有相同的含义。
在您的示例中,default
是一个快速保留的关键字,这就是需要反引号的原因。
答案 1 :(得分:5)
简单地说,通过使用反引号,您可以使用 变量名等的保留字。
var var = "This will generate an error"
var `var` = "This will not!"
答案 2 :(得分:5)
the accepted answer的示例附录,关于使用保留字标识符,在使用反引号正确声明之后。
反引号不被视为标识符的一部分; `x`和x 具有相同的含义。
意味着我们不必担心在标识符声明后使用反引号(但我们可能):
enum Foo {
case `var`
case `let`
case `class`
case `try`
}
/* "The backticks are not considered part of the identifier;
`x` and x have the same meaning" */
let foo = Foo.var
let bar = [Foo.let, .`class`, .try]
print(bar) // [Foo.let, Foo.class, Foo.try]