在学习有关使用钥匙串功能的教程时,我注意到一段代码需要在其中实现以下结构:
// Keychain Configuration
struct KeychainConfiguration {
static let serviceName = "TouchMeIn"
static let accessGroup: String? = nil
}
我知道值类型的 constant 属性一旦实例化就无法修改,所以我很好奇在这种意义上使用static的目的吗?
P.S。
这个问题与question不同,因为接受的最高答案(我认为是最佳答案)没有提供足够的详细信息或任何利弊。
答案 0 :(得分:2)
它具有多种应用程序,包括但不限于以下内容:
1)如果常量具有相同的名称,则给出一个单独的常量命名空间。
struct A {
static let width: Int = 100
}
struct B {
static let width: Int = 100
}
print(A.width)
print(B.width)
2)静态常量在设计上是“惰性”的,因此,如果您要使用行为惰性的全局常量,将其放入结构中可能会很方便。
3)为了向您的同事表明常数适用于使用给定结构的特定领域。
4)在以下部分中组织您的配置:Theme.Layout.itemHeight
或Label.Font.avenirNext