Posted on 2008-10-26 11:07
劍孤寒 閱讀(15637)
評論(2) 編輯 收藏 引用 所屬分類:
Lua
《在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)
輸出為:
1
2
當然,也可以指定下標從多少開始,
比如從10開始,只要把上面創建枚舉表的語句換成下面這樣就可以了:
EnumTable = CreatEnumTable(EnumTable, 10)