似乎当需要使用枚举(字符串类型)时,也可以使用使用静态字段的结构来实现。
e.g.
enum Test: String {
case TestCase1
case TestCase2
case TestCase3
}
or
struct Test {
static let TestCase1 = "TestCase1"
static let TestCase2 = "TestCase2"
static let TestCase3 = "TestCase3"
}
什么时候枚举方法优于其他方法,反之亦然?
他们都是完全可行的。
我曾经认为枚举方法不太灵活,因为您必须明确询问原始值才能到达底层字符串,但我不再这么认为,因为有一些方法可以扩展 NSUserDefaults 等类来提取原始值自动地.
所以现在我更有可能遵循这个更明显的经验法则:如果这只是某些人的美化名称空间常量,具有静态成员的结构似乎最简单。枚举是针对switch,即需要以几种可能状态之一存在的东西。
但我什至没有始终如一地遵循该规则,因为具有原始值的枚举具有结构所没有的优点。例如,如果您有一个带有原始值的枚举,那么您可以非常轻松地从原始值获取相应的枚举情况(通过调用init(rawValue:)
)。对于结构体来说这并不是那么容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)