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...