table 是 Lua 的一種數(shù)據(jù)結(jié)構(gòu)用來幫助我們創(chuàng)建不同的數(shù)據(jù)類型,如:數(shù)字脓钾、字典等售睹。
Lua table 使用關(guān)聯(lián)型數(shù)組,你可以用任意類型的值來作數(shù)組的索引可训,但這個(gè)值不能是 nil昌妹。 ?
Lua table 是不固定大小的捶枢,你可以根據(jù)自己需要進(jìn)行擴(kuò)容。
Lua也是通過table來解決模塊(module)飞崖、包(package)和對象(Object)的烂叔。 例如string.format表示使用"format"來索引table string。
table(表)的構(gòu)造
構(gòu)造器是創(chuàng)建和初始化表的表達(dá)式固歪。表是Lua特有的功能強(qiáng)大的東西蒜鸡。最簡單的構(gòu)造函數(shù)是{},用來創(chuàng)建一個(gè)空表牢裳》攴溃可以直接初始化數(shù)組:
當(dāng)我們?yōu)?table a 并設(shè)置元素,然后將 a 賦值給 b蒲讯,則 a 與 b 都指向同一個(gè)內(nèi)存忘朝。如果 a 設(shè)置為 nil ,則 b 同樣能訪問 table 的元素判帮。如果沒有指定的變量指向a局嘁,Lua的垃圾回收機(jī)制會清理相對應(yīng)的內(nèi)存。
以下實(shí)例演示了以上的描述情況:
以上代碼執(zhí)行結(jié)果為:
Table 操作
以下列出了 Table 操作常用的方法:
接下來我們來看下這幾個(gè)方法的實(shí)例晦墙。
Table 連接
我們可以使用 concat() 方法來連接兩個(gè) table:
執(zhí)行以上代碼輸出結(jié)果為:
插入和移除
以下實(shí)例演示了 table 的插入和移除操作:
執(zhí)行以上代碼輸出結(jié)果為:
Table 排序
以下實(shí)例演示了 sort() 方法的使用悦昵,用于對 Table 進(jìn)行排序:
執(zhí)行以上代碼輸出結(jié)果為:
Table 最大值
table.maxn 在 Lua5.2 之后該方法已經(jīng)不存在了,我們定義了 table_maxn 方法來實(shí)現(xiàn)偎痛。
以下實(shí)例演示了如何獲取 table 中的最大值:
執(zhí)行以上代碼輸出結(jié)果為:
內(nèi)容來自:runoob.com 菜鳥教程
整理:極動云旱捧,寧波家電物聯(lián)網(wǎng)云平臺
CONTACT US: http://www.iot-jd.com