function iter2(key,max)
if key == nil then
return 2 , "val:" .. 2
end
if key >= max then
return nil
else
return key+2, "val:" .. key+2
end
end
如果我调用上面的迭代器,我会收到错误(尝试调用数字值):
for k,v in iter2(1,8) do
print(k,v)
end
如果我正在使用它可以正常工作:
for k,v in iter2,1,8 do
print(k,v)
end
任何人都可以解释两种调用方法的区别吗?