Lua基礎學習 table表

2021-08-15 12:40:53 字數 1698 閱讀 9220

table 是乙個"關聯陣列"。 

在 lua 中可以用任意型別的值來作為陣列的索引,但是這個值不能是 nil,同樣也可以

用任意型別的值作為陣列的value,nil也可以。

1、陣列的索引可以是數字或者是字串,所有索引值都需要用 "["和"]" 括起來;

如果是字串還可以去掉引號和中括號;但是數字下標不可以。**注意**

2、table 所有元素之間用逗號 "," 隔開;

3、table 的預設初始索引以 1 開始,如果不寫索引,則索引就會被認為是數字,

並按順序自動從 1 往後編。

4、table 長度是不固定的,有新資料插入時會自動增長。

5、table 可以儲存任何型別資料,包括nil、函式、table。

6、table 的變數只是乙個位址引用, 對 table 的操作不會產生資料影響。

上**:

--table 的值有兩種儲存方式:1、陣列方式、 2、鍵值對方式

tab1 = ,

keyfunction = function

() print("函式") end31}

print(tab1.key1)---------------12

print(tab1.key2)---------------21

print(tab1[12])----------------tab1索引12

print(tab1.tab2.key1)----------value1

print(tab1.tab2[12])-----------tab2索引12

tab1.keyfunction()-------------函式

tab1["keyfunction"]()----------函式

print(tab1[1])-----------------31

獲取 table表 值:

— 如果下標不是數字, 可以使用 table.key 的形式訪問,也可以 table[「key」] 形式訪問

— 如果下標是數字, 只能使用 table[索引值]形式進行訪問、

— lua 中 如果不指定 table 索引預設索引從 1 開始,在 tab1 中 13 沒有顯式對應的 key,

而在前面都定義了對應的key,因此索引從1開始

— 不管定義索引時用的是常量還是變數, 最終 table 中 value 的索引 key 是常量,

不會隨變數的改變而變化 value 的 key。

迭代器遍歷 table:

1、

for k,v in ipairs(表名) do

print(k,v)

endipairs 方法,遍歷陣列結構

pairs 方法,遍歷鍵值對結構

tab1 = 

for k,v in

ipairs(tab1) do

print(k,v)

end--執行結果:12

223312

43521

623tab1 =

for k,v in

pairs(tab1) do

print(k,v)

end--執行結果:

key1 value1

key3 value3

key2 value2

Lua語言之table表

table有兩種形式,陣列形式與鍵值對形式。一 table基本用法 1.table基本使用 初始化 table 表名 賦值 陣列形式 newtable 0 beijing 即同陣列一樣改變下標進行賦值 鍵值對形式 newtable2 xian shanxi 遍歷 陣列形式 for key,value...

Lua 列印table表內容

剛接觸lua時間不長,但是確實覺得lua的短小精悍,寫 的時候感覺非常的自由,最重要的是 不會稍不注意間就蹦出來個崩潰提示框。lua的table非常強大,如果說c語言說一切皆函式,c 說一切皆物件,那麼lua就是一切皆表,不準確也不接受反駁 哈哈 在進入標題內容之前,先來點前奏,大家也可以直接翻到最...

Lua學習筆記之table

零散知識點記錄 table的拷貝是淺拷貝,若要深拷貝a b則需要遍歷b中的元素,並將其一一對應賦值給a。乙個table剛初始化時,是沒有metatable的,必須通過setmetatable給table賦予metatable,table才有metatable。所以若想直接用table 來初始化乙個t...