Swift variable name with ` (backtick)

后端 未结 3 935
时光取名叫无心
时光取名叫无心 2020-12-02 01:54

I was browsing Alamofire sources and found variable which name is backtick escaped in this source file

open static let `default`: SessionManager = {
    let         


        
相关标签:
3条回答
  • 2020-12-02 02:09

    Simply put, by using backticks you are allowed to use reserved words for variable names etc.

    var var = "This will generate an error" 
    
    var `var` = "This will not!"
    
    0 讨论(0)
  • 2020-12-02 02:13

    According to the Swift documentation :

    To use a reserved word as an identifier, put a backtick before and after it. For example, class is not a valid identifier, but `class` is valid. The backticks are not considered part of the identifier; `x` and x have the same meaning.

    In your example, default is a swift reserved keyword, that's why backticks are needed.

    0 讨论(0)
  • 2020-12-02 02:23

    Example addendum to the accepted answer, regarding using reserved word identifiers, after they have been correctly declared using backticks.

    The backticks are not considered part of the identifier; `x` and x have the same meaning.

    Meaning we needn't worry about using the backticks after identifier declaration (however we may):

    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]
    
    0 讨论(0)
提交回复
热议问题