用.访问属性,与用[]访问属性
用传入索引拼接的key值,从table中获取对应的value
self.cardBaseCfg["attr"..index]
传入的index不同,可以获取不同的配置表属性。如果index为1,即相当于self.cardBaseCfg.attr1
用:访问方法,与用[]访问方法
self:set_type3Text_text(str)
可以写成如下形式:
self["set_type"..type.."Text_text"](self, str)
因为:自带self参数,所以还要加上self参数
判断table是否为空的正确做法
利用next函数
if next(a) ~= nil
--不是空表
else
--空表
end
如果a是数组,那么#a返回的是数组的长度,直接判断#a == 0就可以了。这个的前提是:a必须是数组才能这样做
链接:lua 判断table是否为空的正确做法_斧冰-CSDN博客_lua 判断table是否为空
Lua table中安全移除元素的方法
从后往前删除
for i = #test, 1, -1 do
if remove[test[i]] then
table.remove(test, i)
end
end
获取 table 的长度
list类型的,直接用#就行。其他的table无论是使用 # 还是 table.getn 其都会在索引中断的地方停止计数,而导致无法正确取得 table 的长度。
可以使用以下方法来代替:
function table_leng(t)
local leng=0
for k, v in pairs(t) do
leng=leng+1
end
return leng;
end
删除Table元素的两种方法
1、将字段赋值为 nil,适用于字典
2、使用Table库里的 table.remove(table, index),使用于列表