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

What is the purpose of using static on a constant in a Swift structure?

在学习使用钥匙串功能的教程时,我注意到一段代码需要实现如下结构:

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

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


P.S.
这个问题与这个 不相似,因为最高接受的答案(我认为这是最好的答案)没有提供足够的细节或任何优点或缺点。

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

1) 如果常量同名,给常量一个单独的命名空间。

struct A {
    static let width: Int = 100
}

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

2) 静态常量是 'lazy' 设计的,因此如果您要使用惰性行为的全局常量,将其放在结构中可能会很方便。

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

4) 在以下部分组织您的配置:Theme.Layout.itemHeightLabel.Font.avenirNext