转自:http://groups.google.com/group/jianguhan

用lua来写游戏脚本的确是一件很方便的事情,但是有时候需要用到枚举类型时就有点麻烦了,因为lua里时没有枚举型变量这个东西的,所以要使用枚举还 得自己转换一下,我写了一个函数用来做这种转换: 
function CreatEnumTable(tbl, index) 
    assert(IsTable(tbl)) 
    local enumtbl = {} 
    local enumindex = index or 0 
    for i, v in ipairs(tbl) do 
        enumtbl[v] = enumindex + i 
    end 
    return enumtbl 
end 
在需要用到枚举变量的地方只要这样用就行了: 
EnumTable = 

    "ET1", 
    "ET2", 
}

EnumTable = CreatEnumTable(EnumTable ) 
print(EnumTable.ET1) 
print(EnumTable.ET2) 
输出为: 


当然,也可以指定下标从多少开始, 
比如从10开始,只要把上面创建枚举表的语句换成下面这样就可以了: 
EnumTable = CreatEnumTable(EnumTable, 10)

在Lua中使用枚举型变量相关推荐

  1. JS 枚举型变量操作

    JS   枚举型变量操作(用于全局变量等) (2010-03-18 21:10:20) 转载 标签: js 分类: 程序语言 还有就是   in     运算符使用来判断对象是否包含有属性,你可以看一 ...

  2. C语言中的布尔型变量

    C语言中的布尔型变量     使用C++或JAVA等编程语言较多的人,可能随手就习惯定义一个flag,其数据类型为布尔型,然后用true和false来表示真与假的问题.这个是非常常用的.但是,在C语言 ...

  3. [SV]SystemVerilog枚举型变量语法详解及应用举例

    SystemVerilog枚举型变量语法详解及应用举例 This section provides the examples to declare SystemVerilog enum of logi ...

  4. plsql 中的记录型变量和引用型变量

    /* plsql 中的记录型变量和引用型变量 查询某个员工的姓名和工资 练习记录型变量: 定义变量: emp_rec emp%rowtype; sql语句: select * into emp_rec ...

  5. 面试题:问题:Java中,char型变量中能不能存储一个中文汉字,为什么?

    * char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,  * 所以,char型变量中当然可以存储汉字啦.不过,如果某个特殊的汉字没有被包含在  * unicod ...

  6. ☆ C/C++ 枚举型变量(enum)与布尔型变量(bool)

    ★C语言常见的数据类型有: 整型 浮点型 字符型 数组 结构体 指针 ★这里就来介绍枚举型(enum)与布尔型(bool): ************************************* ...

  7. mysql的枚举型数据库_mysql数据类型中的枚举型_mysql_mysql教程_mysql数据库_课课家...

    在MySQL当中,枚举类型ENUM是一个字符串对象,它的值是在表创建的时侯在列规定中显式枚举的一列值.而在某些情况下,ENUM值也可以为空字符串('')或者是NULL.今天小编就通过这篇文章介绍enu ...

  8. SQL中的布尔型变量

    SQL SERVER中的布尔数据类型用bit,说明如下: 1.bit 与 SQL Server 的整型和数字数据相似的数字数据,但 bit 列只能存储 0 和 1. 2.在插入.修改 bit 数据时, ...

  9. enum-使用宏管理你的枚举型数据

    高级枚举型定义实现 C源文件 #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #includ ...

最新文章

  1. [uart]stty命令使用
  2. Javascript 面向对象编程初探(一)--- 封装
  3. mysql添加字段时定义候选键_MySQL 表约束
  4. 机器学习回归算法—性能评估欠拟合与过拟合
  5. 零基础转行学习python是否还在纠结?这里告诉你答案!
  6. 这里有一个让你变成技术大牛的机会
  7. 使用DbVisualizer导出DB2创建序列SQL
  8. linux中pad命令,1.1Linux初级命令(附例子)
  9. java 检测目录下的文件_如何在Java中检查文件是目录还是文件
  10. jQuery实现点击行(tr)选中某列中CheckBox
  11. 制图折断线_CAD制图规范及技巧总结大全
  12. Imputation:用于数据插补的SPSS宏
  13. Sqli-Lab实验环境搭建(phpstudy环境安装、火狐浏览器插件安装、sqlmap安装、Sqli-Lab安装)
  14. 中国互联网大人物直播简史
  15. c 登录窗口 oracle,C语言实现图形界面登陆窗口
  16. Matlab数学建模学习报告(一)
  17. Java并发编程:volatile关键字解析 by 海子
  18. Repeating Annotations
  19. win10 linux uef系统,超详细!Win10(UEFI启动模式)安装Ubuntu18.04双系统
  20. 计算广告小窥[下]要啥自行车!

热门文章

  1. 服务器光盘拷贝文件夹,如何光盘path中的两个点的文件夹
  2. springboot成都大学校园植物网站毕业设计-附源码181557
  3. Linux系统下的目录树结构
  4. 用python3编写一箭穿心_Python用最简单的代码画出一箭穿心
  5. 深入理解计算机网络-8网络层5
  6. 一天发十万封邮件方法_给老外发邮件,要注意这17点!
  7. Short 类型直接和数值1做对比
  8. OllyDbg分析crackme-AcidBurn
  9. 对数字签名的攻击概述
  10. 【转】Web实现前后端分离,前后端解耦