在official document中,为元素分配的值class Myclass {
static var timesCalled = 0
func foo() -> Int {
Myclass.timesCalled += 1
return Myclass.timesCalled
}
}
表示“未设置标志”(例如pattern="^[^'\\"]*"
),那么为什么要在枚举中使用它?我可以声明没有它的枚举吗?
我尝试编写一个没有0
的枚举,并且编译成功。
答案 0 :(得分:5)
这是一个强烈的建议,而不是常规。遵循 rule 建议的充分理由:
一致性。这是Microsoft自.NET第1天以来发布的recommendations的一部分,其后是您在框架和第三方代码中几乎可以找到的所有枚举。
这意味着default(YourEnum)
的枚举中定义了一个值。
这意味着YourEnum variable = 0
(唯一的Implicit enum conversion)在您的枚举中定义了一个值。
导致不遵守规则:
没有任何编译器警告或错误强制执行
...
是的,可以,但是我强烈建议您不要这样做。
与基础数字类型的其他值不同,您可以获取0
的无显式强制转换(如上面的项目符号所示)。您将会遇到这些值,因此您 都需要编写处理该0
的代码。给它起个名字。给它 the 推荐名称。
(当然,我还建议在所有与枚举相关的代码中都详尽无遗,并具有处理所有超出范围的值的明智方法,但非0值只能通过显式强制转换获得)