枚举类型的作用

概述

枚举就是一种可以列举出来的类型。

定义: 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.

一些常见的枚举

星期

星期一
星期二
星期三
...
星期日

颜色

红色
绿色
紫色
黄色
...

水果

商品类型

为什么要使用枚举

假设如果不使用枚举,我们去表示对应的类型,以星期为例。星期一到日如何去表示这个意义?

我们可以使用星期一对应数字1,星期二对应数字2,以此类推

那么在代码中就应该是这样的:

if curData == 1 then
  print("星期1")
end

分析一下这样写代码有什么不好的地方:

  1. 可读性差(后序维护的人怎么知道数字1代表什么意思?)这里的数字又被称为魔法数字
  2. 不易于维护,假设后面有各种需要修改星期一对应的值为10,那么在代码中,就需要修改很多的地方。还很容易改漏掉。
  3. 不清楚还有哪些类型。例如不知道星期到底有几个,有没有星期八这种东西
  4. 没办法查找到引用(现在各种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工具查找到对应使用该枚举的地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值