佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Lua table簡(jiǎn)明總結(jié)

Lua table簡(jiǎn)明總結(jié)

熱門標(biāo)簽:地方門戶網(wǎng)站 Linux服務(wù)器 呼叫中心市場(chǎng)需求 服務(wù)外包 AI電銷 百度競(jìng)價(jià)排名 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng)

一. table

table是lua唯一的數(shù)據(jù)結(jié)構(gòu)。table 是 lua 中最重要的數(shù)據(jù)類型。 table 類似于 python 中的字典。table 只能通過構(gòu)造式來創(chuàng)建。其他語(yǔ)言提供的其他數(shù)據(jù)結(jié)構(gòu)如array、list等等,lua都是通過table來實(shí)現(xiàn)的。table非常實(shí)用,可以用在不同的情景下。最常用的方式就是把table當(dāng)成其他語(yǔ)言的數(shù)組。

實(shí)例1:

復(fù)制代碼 代碼如下:

mytable = {}
for index = 1, 100 do
    mytable[index] = math.random(1,1000)
end

說明:

1). 數(shù)組不必事先定義大小,可動(dòng)態(tài)增長(zhǎng)。
2). 創(chuàng)建包含100個(gè)元素的table,每個(gè)元素隨機(jī)賦1-1000之間的值。
3). 可以通過mytable[x]訪問任意元素,x表示索引。
4). 索引從1開始。

實(shí)例2:

復(fù)制代碼 代碼如下:

tab = { a = 10, b = 20, c = 30, d = 'www.jb51.net' }
print(tab["a"])

說明:
1). table 中的每項(xiàng)要求是 key = value 的形式。
2). key 只能是字符串, 這里的 a, b, c, d 都是字符串,但是不能加上引號(hào)。
3). 通過 key 來訪問 table 的值,這時(shí)候, a 必須加上引號(hào)。

實(shí)例3:

復(fù)制代碼 代碼如下:

tab = { 10, s = 'www.jb51.net', 11, 12, 13 }
print(tab[1]) = 10
print(tab[2]) = 11
print(tab[3]) = 12
print(tab[4]) = 13

說明:

1). 數(shù)標(biāo)從1開始。
2). 省略key,會(huì)自動(dòng)以1開始編號(hào),并跳過設(shè)置過的key。

二. table函數(shù)

lua提供了許多實(shí)用的內(nèi)建函數(shù)來操作table。

2.1 table.getn(table)

返回table中的元素個(gè)數(shù)。

復(fù)制代碼 代碼如下:

print(table.getn(tab)) -> 4

2.2 table.insert(table,position,value)

在table中插入一個(gè)新的值,位置參數(shù)可選的,如果沒有指定,會(huì)添加table的末尾,否則插入到指定的位置。
table.insert(tab, 2, “hello jb51.net”)
插入”hello jb51.net”到table的第2個(gè)元素的位置,并重新索引。

2.3 table.remove(table,position)

從指定table中刪除并返回一個(gè)元素,如果沒有指定position值,則默認(rèn)刪除最后一個(gè)元素。

復(fù)制代碼 代碼如下:

print(table.remove(tab,2)) -> hello jb51.net

三. table引用

table不僅可以使用數(shù)字索引,也可以用其他值作為索引值。

復(fù)制代碼 代碼如下:

tab = ()
tab.website = "www.jb51.net"
tab.QQ = "39514058"
tab.a = math.random(1,10)
tab[1] = 11
tab[2] = 22

四. 多維table

在lua中創(chuàng)建多維table非常容易的。可以把多維table看做是table的table。可以通過多個(gè)關(guān)鍵字來訪問。

復(fù)制代碼 代碼如下:

multitab = {}
multitab.name = {}
multitab.author = {}
multitab.name[1] = "QQ qun: 39514058"
multitab.name[2] = "website: https://www.jb51.net"
multitab.author[1] = "默北"
multitab.author[2] = "涼白開"
multitab.author[3] = "tonyty163"

五. 遍歷table

pairs()函數(shù)可以遍歷table中的每個(gè)元素。

復(fù)制代碼 代碼如下:

tab = { 10, s = 'www.jb51.net', 11, 12, 13 }
for k, v in pairs(tab) do
    print(k, ":", v)
end

輸出:

復(fù)制代碼 代碼如下:

1 : 10
2 : 11
3 : 12
4 : 13
s : www.jb51.net

pairs()函數(shù)遍歷整個(gè)table,即使不知道table長(zhǎng)度,并返回索引值和相對(duì)應(yīng)的元素值。

您可能感興趣的文章:
  • Lua中table的幾種構(gòu)造方式詳解
  • Lua中對(duì)table排序?qū)嵗?/li>
  • Lua中遍歷數(shù)組和table的4種方法
  • Lua中的table學(xué)習(xí)筆記
  • Lua中的table淺析
  • Lua中使用table實(shí)現(xiàn)的其它5種數(shù)據(jù)結(jié)構(gòu)
  • 獲取Lua表結(jié)構(gòu)(table)數(shù)據(jù)實(shí)例
  • Lua中獲取table長(zhǎng)度問題探討
  • Lua教程之弱引用table
  • Lua中設(shè)置table為只讀屬性的方法詳解

標(biāo)簽:銅川 湘潭 仙桃 黃山 崇左 湖南 蘭州 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua table簡(jiǎn)明總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    湖南省| 南皮县| 梁河县| 横峰县| 浦东新区| 墨江| 渝北区| 武鸣县| 阜南县| 罗江县| 寻乌县| 革吉县| 大丰市| 盐边县| 永昌县| 收藏| 绥棱县| 德兴市| 虞城县| 乐至县| 遂溪县| 岳普湖县| 罗甸县| 新竹县| 高清| 锦屏县| 吉木乃县| 罗定市| 临沭县| 诸暨市| 陕西省| 丹东市| 泾川县| 瑞安市| 时尚| 濮阳县| 福泉市| 勐海县| 阿拉尔市| 墨玉县| 吴堡县|