Lua表作为参数的传递

在file1.lua文件中,我有如下内容:

require "file2"
outerTable = { ["thing1"] = {"1", "2", "3"}, ["thing2"] = {"4", "5", "6"}}
penultimateThing = callAFunction(outerTable["thing1"])

在file2.lua文件中,我有如下内容:

callAFunction(table)
    for k,v in ipairs(table) do
        print(k, v)
    end
end

当我尝试像这样传递一个嵌套的表时,它总是返回nil。这是怎么回事?

点赞
用户11298075
用户11298075

可能是另一个错字,但您没有说 function callAFunction。没有它,我会得到错误:<eof> expected near end。这意味着编译器认为文件应该结束的地方有一个 end。追溯回去,我们发现我们关闭了一个 for 循环,并且我们想要关闭函数定义。然而,函数定义没有打开,因此也无法关闭。

尝试更改为:

function callAFunction(table)
    for k,v in ipairs(table) do
        print(k, v)
    end
end

对我来说,这似乎有效。

2019-11-10 09:19:38