婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Lua中table的幾種構(gòu)造方式詳解

Lua中table的幾種構(gòu)造方式詳解

熱門標(biāo)簽:上海企業(yè)外呼系統(tǒng)排名 開通400電話申請流程 智能語音電銷的機器人 武漢百應(yīng)人工智能電銷機器人 400手機電話免費辦理 揚州電銷外呼系統(tǒng)軟件 百度地圖標(biāo)注位置網(wǎng)站 如何利用高德地圖標(biāo)注家 電腦外呼系統(tǒng)輻射大嗎

之前對于Lua的研究都是紙上談兵,沒有真正的項目練手,現(xiàn)在公司的項目基本上都是用Lua開發(fā),是時候補充一下我那蹩腳的Lua知識了。

基礎(chǔ)數(shù)據(jù)類型、表達式、循環(huán)結(jié)構(gòu)什么的我就不說了,這么簡單的東西說了也要被大家噴。

今天我想說說table的幾種構(gòu)造方式。

0.Lua調(diào)試工具——LuaEditor

首先,如果你是第一次接觸Lua,請補充一下Lua的最基本之中的基礎(chǔ)語法(小若:O O!),然后下載一個LuaEditor工具,用來查看Lua執(zhí)行效果,當(dāng)然也可以調(diào)試,本篇內(nèi)容不解釋這個工具。可以百度一下這個工具。

1.什么是table?

table是Lua最復(fù)雜最強大的數(shù)據(jù)結(jié)構(gòu),Lua本身并不是面向?qū)ο笳Z言,但是對面向?qū)ο笾卸颈容^深的程序員,可以借助table”完美”地模擬面向?qū)ο缶幊獭W詈唵蔚兀覀兛梢园裻able理解為數(shù)組,最復(fù)雜的,我們可以把table理解為”世間萬物”,因為它可以創(chuàng)造出很多你想象不到的東西。一個字,自由度非常大~!(小若:一個字,你妹~!)

2.如何創(chuàng)建一個table?

創(chuàng)建table是一件很復(fù)雜的事情,不知道大家頂不頂?shù)米。囋嚳矗缦拢?br />

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

local a = {}

這樣就創(chuàng)建了一個table了。
(小若:噗,真夠復(fù)雜的…啊,你妹啊,復(fù)雜你個頭!)

3.如何初始化一個table

嗷,雖然創(chuàng)建table已經(jīng)很復(fù)雜了,更復(fù)雜的還在后面,怎么初始化table?看看下面的代碼:

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

local a = {["x"] = 12, ["mutou"] = 99, [3] = "hello"}
print(a["x"]);

在LuaEditor中創(chuàng)建一個lua文件,輸入以上代碼,保存,然后按F5運行,我們將看到輸出窗口輸出了一個數(shù)字:12。

這挺神奇的,感覺就像是在定義數(shù)組,不是嗎?

table間的元素用逗號分隔,["x"] = 12代表構(gòu)造一個table元素,下標(biāo)為”x”,值為12。(小若:為毛數(shù)組下標(biāo)可以是字符串?)

嗷~!我就等旁白問這個問題,旁白你笨蛋啊,我只是說table像數(shù)組,我沒有說它就是數(shù)組,table支持幾乎是所有類型的下標(biāo),包括函數(shù)。

(小若:。。。以后我不會中計了,喵…)

4.有更簡潔的方式

這種初始化方式看起來太復(fù)雜了,有沒有簡單點的?看看下面的代碼:

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

local a = {x = 12, mutou = 99, [3] = "hello"}
print(a["x"]);

運行結(jié)果仍然是輸出12,也就是說,對于字符串下標(biāo),我們可以省略方框和雙引號,但是數(shù)字下標(biāo)不可以,千萬不要搞混了。

但是,a["x"]這種調(diào)用方式也很煩人不是嗎?程序員都很懶的,所以Lua支持一下這種方式的調(diào)用:

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

local a = {x = 12, mutou = 99, [3] = "hello"}
print(a.x);

輸出結(jié)果仍然是12,也就是說,對于字符串下標(biāo),可以直接用a.x的形式調(diào)用,也是省略了方框和雙引號,初始化和調(diào)用方式的規(guī)則一樣,這樣大家就不會搞混了,記住,是字符串下標(biāo)才這么做。

記住,是字符串下標(biāo)才這么做。

記住,是字符串下標(biāo)才這么做。(小若:你再說一句試試,我保證以后不幫你吐槽。)

5.想要默認(rèn)數(shù)字索引怎么辦?

如果說,大家習(xí)慣了數(shù)組,用數(shù)字下標(biāo),又不想自己一個個數(shù)字地定義,比如:

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

local a = {[1] = 12, [2] = 43, [3] = 45, [4] = 90}

沒關(guān)系,Lua又為愛偷懶的程序員提供了一招,如下:
復(fù)制代碼 代碼如下:

local a = {12, 43, 45, 90}
print(a[1]);

看看a[1]輸出的值是不是12?(小若:但是12的下標(biāo)應(yīng)該是0啊,數(shù)組下標(biāo)是從0開始計算的)

再一次警告旁白,table類似數(shù)組,但它絕對不是數(shù)組。

table默認(rèn)的第一個索引下標(biāo)是1,并且很多相關(guān)的函數(shù)也假設(shè)table的第一個索引下標(biāo)為1,所以大家最好遵守這個規(guī)則。

6.更強大的應(yīng)用之table的table

table什么都能放,當(dāng)然也能放table了,如下:

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

local a = {
 {x = 1, y = 2},
 {x = 3, y = 10}
}

我們定義了一個table,命名為a,table有兩個元素,分別是兩個沒有名字的table,根據(jù)第5條所說的規(guī)則,沒有顯示指定下標(biāo),那Lua就會默認(rèn)給table的元素賦予下標(biāo)(從1開始)。

因此,a的第一個元素就是{x = 1, y = 2},調(diào)用a的第一個元素的方式為:a[1]
由于a[1]又是一個table,所以,再次調(diào)用table的x下標(biāo)的值:a[1].x
這樣就OK了。

7.更強大的應(yīng)用之函數(shù)下標(biāo)

我們最后來試試更好玩的,用一個函數(shù)當(dāng)table的下標(biāo):

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

function test()
 print("Hello Table");
end
local a = {[test] = 1}
print(a[test]);

定義了一個函數(shù)test,然后用test作為下標(biāo)定義了table的一個元素,值為1。
這很奇怪不是嗎?但是有時候這樣確實很有用,這里暫時不解釋。
OK,關(guān)于table的構(gòu)造方式,暫時說這么多,有點累了,晚安。

您可能感興趣的文章:
  • Lua的table庫函數(shù)insert、remove、concat、sort詳細(xì)介紹
  • Lua中對table排序?qū)嵗?/li>
  • Lua中遍歷數(shù)組和table的4種方法
  • Lua中的table學(xué)習(xí)筆記
  • Lua中使用table.concat連接大量字符串實例
  • Lua中的table淺析
  • Lua判斷Table是否為空的方法(空的table即{})
  • Lua中使用table實現(xiàn)的其它5種數(shù)據(jù)結(jié)構(gòu)
  • 獲取Lua表結(jié)構(gòu)(table)數(shù)據(jù)實例
  • 深入談?wù)刲ua中神奇的table

標(biāo)簽:新余 嘉峪關(guān) 宜賓 黑龍江 張掖 延邊 江西 武漢

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中table的幾種構(gòu)造方式詳解》,本文關(guān)鍵詞  Lua,中,table,的,幾種,構(gòu)造,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中table的幾種構(gòu)造方式詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Lua中table的幾種構(gòu)造方式詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 新闻| 克山县| 汽车| 建昌县| 连江县| 曲松县| 修水县| 上栗县| 兴义市| 怀远县| 时尚| 永年县| 蛟河市| 镇雄县| 夏津县| 哈巴河县| 喀喇沁旗| 习水县| 鱼台县| 成都市| 云浮市| 彭阳县| 潍坊市| 育儿| 安溪县| 长岭县| 丹寨县| 珲春市| 万州区| 彩票| 绵阳市| 周口市| 宁海县| 托克托县| 镶黄旗| 龙胜| 仪陇县| 门源| 龙泉市| 泰宁县| 错那县|