1.ipairs 和 pairs 对待nil成员的区别
function Test:Show()
local t = { name = {1, 2, 3}, name1 = {4,5,6}, name2 = {7,8,9}, name3 = {10, 11, 12} }
t.name2 = nil
local t1 = {{1}, {4, 5}, {7,8}, {10, 11, 12} }
t1[2] = nil
for k,v in pairs(t) do
Logger.Log(Logger.Module.COMMON, k)
Logger.Log(Logger.Module.COMMON, #v)
end
for k,v in ipairs(t1) do
Logger.Log(Logger.Module.COMMON, k)
Logger.Log(Logger.Module.COMMON, #v)
end
end
输出:
可以看到pairs对待table中的nil, 不会截断后续的输出。而ipairs对待table中nil, 会截断后面的输出内容。
|
请发表评论