在Swift结构中使用静态常量的目的是什么?
在Swift结构中使用静态常量的目的是什么?
在跟随一个使用Keychain功能的教程时,我注意到一段代码中需要实现以下的结构体:\n// Keychain Configuration\nstruct KeychainConfiguration {\n static let serviceName = \"TouchMeIn\"\n static let accessGroup: String? = nil\n}\n
\n我知道在值类型上的常量属性一旦实例化就不能被修改,所以我很好奇在这种情况下使用static的目的是什么?\n
\nP.S.
\n这个问题与这个问题不相似,因为最高接受的答案(我认为是最好的答案)没有提供足够的细节或任何优缺点。
使用静态常量的目的是什么?
在Swift结构中使用静态常量有多种应用,包括但不限于以下几种:
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
事实上,枚举更适合用于命名空间。
这并不否认结构也可以用于命名空间。
当你有筷子时,你不会用勺子吃面条。
我可以将上面的代码放入枚举中吗,因为它们是字符串?我尝试过,但没有成功。你能提供一个例子吗?