viv*_*ekv 1 lua initialization lua-table
我正在尝试初始化并打印一个表.它只是不工作.知道这个代码有什么问题吗?
--!/usr/bin/env lua
local retv = {}
retv["test"] = 1000
for k,v in ipairs(retv) do
print (k,v)
end
Run Code Online (Sandbox Code Playgroud)
它什么都不打印.我确信我遗漏了一些非常基本的东西,但我无法弄清楚这一点.
forLua中有两种形式的-loop:
数字和泛型for循环.
ipairs(t)是一个迭代器构造函数,最多返回三个适用于泛型的参数,允许您按顺序迭代初始序列(索引1,2,3,...).
可能的实施:
function ipairs(t)
local i = 0
return function()
i = i + 1
if t[i] ~= nil then
return i, t[i]
end
end
end
Run Code Online (Sandbox Code Playgroud)
local function ipairs_helper(t, i)
i = i + 1
if t[i] ~= nil then
return i, t[i]
end
end
function ipairs(t)
return ipairs_helper, t, 0
end
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这将永远不会使用密钥返回您的条目"test".
相反,你想要的是pairs(t),相当于next, t.
这将迭代所有元素.