代码之家  ›  专栏  ›  技术社区  ›  Laurence Wingo

在Swift结构中对常量使用static的目的是什么?

  •  1
  • Laurence Wingo  · 技术社区  · 6 年前

    在学习如何使用Keychain特性的教程时,我注意到有一段代码需要实现如下结构:

    // Keychain Configuration
    struct KeychainConfiguration {
      static let serviceName = "TouchMeIn"
      static let accessGroup: String? = nil
    }
    

    值类型的属性一旦实例化就不能修改,所以我很好奇在这个意义上使用static的目的是什么?


    附笔。
    这个问题和这个不一样 question 因为接受度最高的答案(我认为这是最好的答案)没有提供足够的细节,也没有任何利弊。

    1 回复  |  直到 6 年前
        1
  •  2
  •   fewlinesofcode user10694837    6 年前

    它有多种应用,包括但不限于以下内容:

    1) 如果常量具有相同的名称,则为常量指定一个单独的命名空间。

    struct A {
        static let width: Int = 100
    }
    
    struct B {
        static let width: Int = 100
    }
    print(A.width)
    print(B.width)
    

    3) 向您的同事展示常量适用于使用给定结构的特定域。

    4) 将您的配置分为以下几部分: Theme.Layout.itemHeight Label.Font.avenirNext