亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Lua中table的幾種構造方式詳解

2024-07-21 23:04:00
字體:
來源:轉載
供稿:網友

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

基礎數據類型、表達式、循環結構什么的我就不說了,這么簡單的東西說了也要被大家噴。

今天我想說說table的幾種構造方式。

0.Lua調試工具——LuaEditor

首先,如果你是第一次接觸Lua,請補充一下Lua的最基本之中的基礎語法(小若:O O?。?,然后下載一個LuaEditor工具,用來查看Lua執行效果,當然也可以調試,本篇內容不解釋這個工具??梢园俣纫幌逻@個工具。

1.什么是table?

table是Lua最復雜最強大的數據結構,Lua本身并不是面向對象語言,但是對面向對象中毒比較深的程序員,可以借助table”完美”地模擬面向對象編程。最簡單地,我們可以把table理解為數組,最復雜的,我們可以把table理解為”世間萬物”,因為它可以創造出很多你想象不到的東西。一個字,自由度非常大~?。ㄐ∪簦阂粋€字,你妹~?。?/p>

2.如何創建一個table?

創建table是一件很復雜的事情,不知道大家頂不頂得住,試試看,如下:

復制代碼 代碼如下:

local a = {}

這樣就創建了一個table了。
(小若:噗,真夠復雜的…啊,你妹啊,復雜你個頭?。?p>  

3.如何初始化一個table

嗷,雖然創建table已經很復雜了,更復雜的還在后面,怎么初始化table?看看下面的代碼:

復制代碼 代碼如下:

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

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

 

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

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

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

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

4.有更簡潔的方式

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

復制代碼 代碼如下:

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

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

 

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

復制代碼 代碼如下:

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

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

 

記住,是字符串下標才這么做。

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

5.想要默認數字索引怎么辦?

如果說,大家習慣了數組,用數字下標,又不想自己一個個數字地定義,比如:

復制代碼 代碼如下:

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

沒關系,Lua又為愛偷懶的程序員提供了一招,如下:
復制代碼 代碼如下:

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

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

 

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

table默認的第一個索引下標是1,并且很多相關的函數也假設table的第一個索引下標為1,所以大家最好遵守這個規則。

6.更強大的應用之table的table

table什么都能放,當然也能放table了,如下:

復制代碼 代碼如下:

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

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

 

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

7.更強大的應用之函數下標

我們最后來試試更好玩的,用一個函數當table的下標:

復制代碼 代碼如下:

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

定義了一個函數test,然后用test作為下標定義了table的一個元素,值為1。
這很奇怪不是嗎?但是有時候這樣確實很有用,這里暫時不解釋。
OK,關于table的構造方式,暫時說這么多,有點累了,晚安。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品久久久久久久| 欧美日韩裸体免费视频| 91精品久久久久久久久久另类| 九九综合九九综合| 91精品视频观看| 日韩欧美一区二区三区| 成人性生交大片免费观看嘿嘿视频| 亚洲永久在线观看| 国产欧美精品在线播放| 亚洲a区在线视频| 日韩电影在线观看中文字幕| 国产精品久久久久久久久久久新郎| 久久久国产精品亚洲一区| 色偷偷av一区二区三区乱| 中文字幕日韩欧美在线视频| 日韩视频在线免费观看| 国产成人avxxxxx在线看| 欧美在线国产精品| 欧美日韩国产在线播放| 日本成人激情视频| 国产精品精品视频一区二区三区| 国产97色在线|日韩| y97精品国产97久久久久久| 欧美性极品少妇精品网站| 亚洲欧洲在线免费| 久久久噜久噜久久综合| 久久色免费在线视频| 亚洲成人激情小说| 国产精品旅馆在线| 国产精品美女www| 成人国产精品久久久| 国产精品视频男人的天堂| 欧美巨乳在线观看| 亚洲国产欧美在线成人app| 在线观看久久av| 欧美激情亚洲综合一区| 欧美激情影音先锋| 国产精品www网站| 欧美激情成人在线视频| 欧美性xxxxx| 亚洲精品福利视频| 最近2019年好看中文字幕视频| 97久久久免费福利网址| 国产日韩av高清| 日韩黄在线观看| 国产精品一区二区三| 亚洲人成网站999久久久综合| 国产精品www| 懂色av中文一区二区三区天美| 亚洲人成77777在线观看网| 91精品免费久久久久久久久| 亚洲成人教育av| 日韩精品视频在线观看网址| 欧美专区第一页| 91亚洲精品一区二区| xxav国产精品美女主播| 国产自产女人91一区在线观看| 欧美激情在线狂野欧美精品| 97视频人免费观看| 亚洲视频一区二区三区| 免费99精品国产自在在线| 66m—66摸成人免费视频| 91伊人影院在线播放| 亚洲色图25p| 欧美有码在线视频| 欧美日韩视频在线| 欧美一性一乱一交一视频| 亚洲国产另类 国产精品国产免费| 国产99在线|中文| 深夜精品寂寞黄网站在线观看| 国产精品一区av| 日本不卡视频在线播放| 午夜精品在线视频| 欧美日韩免费一区| 亚洲欧美中文字幕在线一区| 国产69精品99久久久久久宅男| 一区二区三区视频在线| 欧美成人黑人xx视频免费观看| 日韩欧美中文在线| 91久久久久久国产精品| 久久人人爽人人爽人人片亚洲| 中文.日本.精品| 日韩精品免费电影| 日韩电视剧在线观看免费网站| 国产主播精品在线| 日韩精品视频在线| 97国产suv精品一区二区62| 亚洲色图激情小说| 久久久久九九九九| 欧美精品免费在线观看| 78m国产成人精品视频| 国产一区二区三区在线观看网站| 欧美福利视频在线观看| 国产伦精品免费视频| 中文字幕精品一区二区精品| 26uuu亚洲国产精品| 69久久夜色精品国产69乱青草| 成人免费看吃奶视频网站| 国语自产偷拍精品视频偷| 国产精品男女猛烈高潮激情| 伊人av综合网| 91精品国产综合久久香蕉的用户体验| 久久久久在线观看| 黄色成人av网| 日韩成人中文字幕| 色yeye香蕉凹凸一区二区av| 一个人www欧美| 操91在线视频| 欧美一级淫片videoshd| 久久久久五月天| 高清欧美一区二区三区| 国产精品久久一区主播| 中文字幕国产精品| 日韩欧美大尺度| 亚洲福利视频免费观看| 国产精品久久久久久亚洲调教| 高清欧美性猛交xxxx| 成人福利网站在线观看| 欧美日韩一区免费| 国自在线精品视频| 92看片淫黄大片看国产片| 亚洲精品网站在线播放gif| 欧美精品一区二区免费| 精品久久香蕉国产线看观看亚洲| 亚洲网在线观看| 日韩大片在线观看视频| 日韩美女写真福利在线观看| 色综合久综合久久综合久鬼88| 亚洲精品国产电影| 97国产真实伦对白精彩视频8| 美女少妇精品视频| 国产精品综合不卡av| www.亚洲成人| www.欧美精品一二三区| 亚洲欧美日韩国产成人| 久久免费在线观看| 久久久亚洲欧洲日产国码aⅴ| 欧美视频在线观看 亚洲欧| 在线看欧美日韩| 欧美视频免费在线| 日韩最新免费不卡| 精品免费在线视频| 日韩精品久久久久久久玫瑰园| 久久av红桃一区二区小说| 久久亚洲私人国产精品va| 欧美在线观看一区二区三区| 精品成人69xx.xyz| 国产精品久久久久久久久久99| 国产一区二区三区中文| 综合欧美国产视频二区| 国产亚洲人成a一在线v站| 欧美日韩在线免费| 亚洲天堂男人天堂女人天堂| 欧美精品在线播放| 综合国产在线视频| 97精品视频在线播放| 亚洲欧美精品中文字幕在线| 亚洲精品久久久久久久久久久久| 中文字幕av一区中文字幕天堂| 91国偷自产一区二区三区的观看方式| 欧美一级片久久久久久久| 亚洲欧洲av一区二区| 精品国产成人av| 黑人巨大精品欧美一区免费视频|