Skip to main content

table

声明方式

方式1:

-- 使用下标访问的table (类似js的数组)
table = {1,2,3,4,5}

方式2:

-- 使用名称范围的table (类似js的对象)
person = {
name = "cps",
age = 18,

getName = function()
print(person::name..persion::age)
end,

["特殊字符串"] = '/.ads,fpoz902384098'
}

person['name'] = 'new_name'

print(person.name)

声明函数

-- 这样也可以对table进行函数的添加
person = {name = "cps"}

function person.say()
print(person.name, 'say')
end

遍历

for ... do

--打印数组a的所有值  
a = {"one", "two", "three"}
for i, v in ipairs(a) do
print(i, v)
end
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}  
for i,v in ipairs(days) do
print(v)
end
local testTable = {1,2,3,4,5,6}

-- #testTable 的作用是获取 testTable的长度
for i = 1, #testTable do
print(testTable[i])
end

for ... in .. do

local testTable = {1,2,3,4,5,6}

-- ipairs() 内置函数,返回数组的下标和数据
for index,calue in ipairs(testTable) do
print(testTable[i])
end

空判断

-- 使用next()是否返回nil来判断一个table是否为空
tar = {}

function isEmpty(tar)
if next(tar) == nil
return nil
else
return #tar
end