table是 lua中的一種資料結構, 既可以當做陣列(array)使用, 又可以當做字典(類似 j**a中的hashmap)來使用在 lua的8中資料結構中,
· 可以作為 table鍵的有: number, string, boolean, function, table, thread.
· 不能作為 table鍵的有: nil.
· userdata未知
第一種方式:
-- 使用花括號來建立乙個空表, 然後賦值
mytab = {}
mytab['x'] = 12
mytab[2] = 'hello'
第二種方式:
-- 建立表的時候, 同時初始化表資料
-- 表中儲存鍵值對資料, 格式如: [key] = value, 鍵和值可以是多種型別
mytab =
第三種方式
-- 同第二種方式, 不過非數字型別的鍵可以省略中括號, 數字型別不能省略
mytab =
第四種方式
-- 想使用數字索引作為鍵時, 可以通過僅寫值的方式宣告,
-- 這樣 lua會按照宣告順序為值建立從1開始的自增的索引
-- 如果表中都是數字索引, 那麼此時的表就是乙個陣列
mytab =
第一種方式
-- 先構造乙個表
mytab =
-- 以下是最常用的兩種遍歷方式
-- 全表遍歷
-- 這種遍歷方式是按照 table中 key的 hash值排列順序來遍歷的,
-- 並非是 table中 key的定義順序, 並且不關心 key是否從1開始和 key是否以1遞增
for k, v in
pairs(tab) do
print(k, v)
end-- [[
output:
1112
12313 c c
b b
a a
]]-- 僅遍歷表中的陣列部分
-- 按照 key的大小順序來遍歷 (注意不是 key定義的順序)
-- 因為表中非數字鍵的鍵值對是使用 hash表儲存的, 這樣的資料是無序的, 所以無法遍歷
for k, v in
ipairs(mytab) do
print(k, v)
end--[[
output:
1 11
2 12
3 13
]]-- 第三種方式
-- #mytab可以獲取到 mytab表中的陣列部分的元素個數
for i = 1, #mytab do
print(mytab[i])
end-- 第四種
--
Lua中Table表與C 陣列區別
table 是 lua 的一種資料結構用來幫助我們建立不同的資料型別,如 陣列 字典等。table表中陣列與c 陣列區別 table表並不完全等同於c 陣列 一 table表中陣列索引值可以為任意型別 可以為負數 但不能為nil型別 c 陣列型別只能為整數型別 二 table表陣列元素可以連線,c ...
Lua學習 表和陣列
在lua中,表 table 是十分重要的一種資料結構,實際上lua對於複雜資料型別也僅提供了表給我們,我們通過表可以實現我們需要的大部分重要的資料結構,比如陣列。table型別實現了關聯陣列,關聯陣列是一種具有特殊索引方式的陣列 不僅可以通過整數來索引它,還可以使用字串或其它型別的值 除了nil 來...
lua元表與元方法
1.首先我們先了解下lua的表 2.元表 是用來定義對table操作的方式表 我們先來看一下問題 t1 t2 我們把這兩張錶拼起來 第一種方法 table.inster t1,t2 1 第二種方法 元表 mt 方法類似於c 的運算子過載可以看出我們過載的是 mt.add function t1,t2...