Posted on 2008-10-26 11:07
劍孤寒 閱讀(15652)
評(píng)論(2) 編輯 收藏 引用 所屬分類:
Lua
《在Lua中使用枚舉型變量》
轉(zhuǎn)載請(qǐng)注明出處:
http://groups.google.com/group/jianguhan
用lua來(lái)寫游戲腳本的確是一件很方便的事情,但是有時(shí)候需要用到枚舉類型時(shí)就有點(diǎn)麻煩了,因?yàn)閘ua里時(shí)沒(méi)有枚舉型變量這個(gè)東西的,所以要使用枚舉還 得自己轉(zhuǎn)換一下,我寫了一個(gè)函數(shù)用來(lái)做這種轉(zhuǎn)換:
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
當(dāng)然,也可以指定下標(biāo)從多少開(kāi)始,
比如從10開(kāi)始,只要把上面創(chuàng)建枚舉表的語(yǔ)句換成下面這樣就可以了:
EnumTable = CreatEnumTable(EnumTable, 10)