如何在Lua中返回多个表/对象?我在file1.lua中有这个文件:
local A = {}
function A.new()
o = {}
return o
end
local B = {}
function B.new()
o = {}
return o
end
return A --And I want to return B
我想在file2.lua中同时使用它们:
local A = require "file1"
a = A.new()
b = ?
答案 0 :(得分:2)
您可能会返回一些如下结果:
return A, B
…
local A,B = require "file1"
但这是一个不好的主意,因为缓存,并且可能会失败。
最好将它们都放在表中
return {A = A, B = B}
…
local file1 = require "file1"
local A,B = file1.A, file1.B
UPD:这仅在lua 5.2+中有效,但可能是最短和最清晰的:
return {A, B}
…
local A, B = table.unpack(require "file1")
您可以在最后两个中使用任何一个。