Lua Table型別的使用

2021-06-09 11:30:43 字數 921 閱讀 1841

關係表型別,這是乙個很強大的型別。我們可以把這個型別看做是乙個陣列。只是c語言的陣列,只能用正整數來做索引;在lua中,你可以用任意型別來作陣列的索引,除了nil。同樣,在c語言中,陣列的內容只允許一種型別;在lua中,你也可以用任意型別的值來作陣列的內容,除了nil

table的定義很簡單,它的主要特徵是用""來括起一系列資料元素的。比如: 

t1 = {} -- 定義乙個空表 

t1[1]=10 -- 然後我們就可以象c語言一樣來使用它了。 

t1["john"]= 

這一句相當於: 

t1["john"]={} -- 必須先定義成乙個表,還記得未定義的變數是nil型別嗎 

t1["john"]["age"]=27 

t1["john"]["gender"]="male" 

當表的索引是字串的時候,我們可以簡寫成: 

t1.john={} 

t1.john.age=27 

t1.john.gender="male" 

或  t1.john 

這是乙個很強的特性。

在定義表的時候,我們可以把所有的資料內容一起寫在""之間,這樣子是非常方便,而且很好看。比如,前面的t1的定義,我們可以這麼寫: 

t1= 

,  20 -- 相當於 [2] = 20 

} 看起來很漂亮,不是嗎?我們在寫的時候,需要注意三點: 

第一,所有元素之間,總是用逗號","隔開; 

第二,所有索引值都需要用"["和"]"括起來;如果是字串,還可以去掉引號和中括號;

第三,如果不寫索引,則索引就會被認為是數字,並按順序自動從1往後編;

表型別的構造是如此的方便,以致於常常被人用來代替配置檔案。是的,不用懷疑,它比ini檔案要漂亮,並且強大的多。 

LUA TABLE資料型別的操作

table.concat table,sep,start,end table.concat 函式列出引數中指定table的陣列部分從start位置到end位置的所有元素,元素間以指定的分隔符 sep 隔開 除了table外,其他的引數都不是必須的,分隔符的預設值是空字元,start的預設值是1,en...

lua table使用筆記

參考 1 lua的table你可以先理解為既是乙個陣列也是乙個字典 2 table判空 function istableempty t if t nil or next t nil then return true else return false endend3 元表和 index 先是元表 上...

lua table 的操作 四

table在前面作過介紹,它是一種關聯陣列,這種關聯指的是可以設定各類型別的key來儲存值。為 table a 並設定元素,然後將 a 賦值給 b,則 a 與 b 都指向同乙個記憶體位址 如果 a 設定為 nil 則 b 同樣能訪問 table 的元素。如果沒有指定的變數指向a,lua的垃圾 機制會...