概述
枚举就是一种可以列举出来的类型。
定义: 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.
一些常见的枚举
星期
星期一
星期二
星期三
...
星期日
颜色
红色
绿色
紫色
黄色
...
水果
商品类型
为什么要使用枚举
假设如果不使用枚举,我们去表示对应的类型,以星期为例。星期一到日如何去表示这个意义?
我们可以使用星期一对应数字1,星期二对应数字2,以此类推
那么在代码中就应该是这样的:
if curData == 1 then
print("星期1")
end
分析一下这样写代码有什么不好的地方:
- 可读性差(后序维护的人怎么知道数字1代表什么意思?)这里的数字又被称为魔法数字
- 不易于维护,假设后面有各种需要修改星期一对应的值为10,那么在代码中,就需要修改很多的地方。还很容易改漏掉。
- 不清楚还有哪些类型。例如不知道星期到底有几个,有没有星期八这种东西
- 没办法查找到引用(现在各种IDE工具,可以找到对应的引用,但是如果使用魔法数字,就找不到对应的引用了)
使用枚举后
当我们使用枚举之后就可以解决上面的问题了。
这个时候我们的代码应该是这样的:
local WeekEnum = {
MONDAY = 1,
TUESDAY = 2,
WEDNESDAY = 3,
THURSDAY = 4,
FRIDAY = 5,
SATURDAY = 6,
SUNDAY = 7
}
if curData == WeekEnum .MONDAY then
print("星期1")
end
这个时候,就很清晰的可以了解到代码的含义,后续维护的时候,如果有需要改对应的值,只需要在 WeekEnum
中改对应的值就好了。因为业务上不管他对应的值是什么,操作的是指对应的枚举类型而已。
并且通过WeekEnum
可以一目了然的知道,一个星期有那几天。并且可以通过IDE工具查找到对应使用该枚举的地方。