Cocos2d-x 指令碼語言Lua基本資料結構-表(table)
table是Lua中唯一的資料結構,其他語言所提供的資料結構,如:arrays、records、lists、queues、sets等,Lua都是通過table來實現,並且在lua中table很好的實現了這些資料結構。--摘自:《Programming in Lua》
看以下代碼,可以很清晰的明白Lua中表的使用:
-- Lua中的表,tableConfig = {hello="Hello Lua",world="World"} -- 賦值方式1,以鍵=值的方式初始化Config.words = "Hello" -- 賦值方式2,通過指定table.key = value的形式方式賦值Config.num = 100 -- 通過賦值來指定類型Config["name"] = "ZhangSan" -- 賦值方式3,通過table["key"] = value的形式賦值-- 通過以下形式列印表的值print(Config["words"])print(Config.name)print(Config.hello)-- 通過for迭代器,遍曆表,輸出表中的鍵和值for key, var in pairs(Config) doprint(key,var)end
以下代碼是使用表來定義一個數組,使用表還可以定義矩陣和多維陣列、鏈表、隊列和雙向隊列、集合和包。
--定義一個數組,初始化,這裡初始化每個元素的類型可以不同arr = {1,2,3,4,"Hello"}--迭代數組for key, var in pairs(arr) doprint(key,var)end--定義一個空表arr = {}--通過for迴圈,調用table的insert方法,往數組插入值for var=1, 100 dotable.insert(arr,1,var)end--遍曆數組,列印鍵,值for key, var in pairs(arr) doprint(key,var)end--調用table的api,取得數組中最大的值print(table.maxn(arr))
讀者,可以到以下地址,查看Lua給我們開發人員提供的API,目前Lua最新的版本是5.2:http://www.lua.org/manual/5.2/
這裡可以查看到相應的API的使用,具體參數的意思。