您的位置:首页 > 大数据 > 人工智能

用闭包实现ipairs

2016-12-07 17:38 204 查看
local table1 = {2,3,4,5,6}

print("the first print:");
for k,v in ipairs(table1) do
print(k,v)
end

function my_ipars(table)
local key = 0
return function()
key = key+1
return key,table[key]
end
end

function My_ipars(table,callfuncN)
local fun_ipars = my_ipars(table)
while(1) do
local key,value = fun_ipars();
if value ~= nil then
if callfuncN ~= nil then
callfuncN(table,key,value)--回调机制
end
else
break
end
end

end

local callfuncN =function(table , key, value)
print("the:",type(table)," the key:",key,"  the value:",value);
table[key] = value * value
end

print("my ipairs print")
My_ipars(table1,callfuncN)

print("my second print")
for i,v in ipairs(table1) do
print(i,v)
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: