在Lua中使用枚举型变量

转自: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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值