在枚举中使用静态let代替大小写

时间:2018-07-14 13:36:31

标签: ios swift enums

我注意到在枚举内部的某些情况,而不是人们使用static let声明变量的情况。这种做法合理吗?

public enum ExampleEnum {
    static let case1 = "case1"
    static let case2 = "case2"
    static let case3 = "case3"
}

1 个答案:

答案 0 :(得分:3)

这是为常量创建名称空间的快速方法。

您当然可以使用结构来达到类似的效果,但是运行let foo = StructOnlyForStoringConstants()不会引发错误甚至警告(可以使用private init甚至记录警告来解决,但很快就会丢失quick中的a quick way),因此可能会造成混淆(some argue)。由于无法实例化没有大小写的枚举(或“ no-case enums”),因此您不会遇到此问题。

另一个原因是,将常量放入枚举可能感觉更自然(比在结构中说得更自然),因为枚举用于存储一组相关值。