在lua中实现枚举类型

 时间:2024-10-13 09:22:40

1、如果没有枚举类型。代码很可能会是这样iftype==1then--dosomethingelseiftype==2then--dosomethingend

在lua中实现枚举类型

2、为了改进代码,我们在全局的一个文件中编写下面的代码localENUM={}--布阵类型PVE进攻ENUM.BATTLE_TYPE_PVE_ATT=1--布阵类型PVE防守ENUM.BATTLE_TYPE_PVE_DEF=2returnENUM

在lua中实现枚举类型

3、有了上面的定义,我们代码可读性得到提升。最开始的代码筐毙险裆变成这样了:iftype==ENUM.BATTLE_TYPE_霸烹钟爷PVE_ATTthen--dosomethingelseiftype==ENUM.BATTLE_TYPE_PVE_DEFthen--dosomethingend

在lua中实现枚举类型

4、现在代码貌似变得优雅了。但我们不知道一共有多少枚举类型。新增加一个类型的时候,我们的代码需要跟着变化。这违反开闭原则。为了遵守开闭原则。我们先修改enum的代码。localENUM={}--布阵类型PVE进攻ENUM.BATTLE_TYPE={PVE_ATT=1,PVE_DEF=2,}returnENUM

在lua中实现枚举类型

5、修改enum实现后。方位的代码变成这样iftype==ENUM.BATTLE_TYPE.PVE_ATTthen--dosomethingelseiftype==ENUM.BATTLE_TYPE.PVE_DEFthen--dosomethingend

在lua中实现枚举类型

6、localg_cmd={[苇质缵爨ENUM.BATTLE_TYPE.PVE_ATT]=func1,[ENUM.BATTLE_TYPE.PVE_DEF柯计瓤绘]=func2}functiondo_action(args)localf=g_cmd[args.type]f()end经过这样的修改,只修配置文件。就可增加功能。完全拥抱了变化

在lua中实现枚举类型
  • UOS试用期怎么激活?
  • sql server2014怎么设置sa用户登录
  • win7怎么给文件夹更换图标
  • 怎么用vbs换壁纸
  • win7中如何查看硬盘是不是gpt分区
  • 热门搜索
    说好普通话手抄报 冬至手抄报 关于春节手抄报 节能减排手抄报 父亲节手抄报 开学了手抄报内容 快乐成长手抄报 关于春天的手抄报图片 关于梦想的手抄报 母亲节手抄报简单漂亮