Module 如何在Lua中返回多个模块?
如何在Lua中返回多个表/对象?我在file1.lua中有这个:Module 如何在Lua中返回多个模块?,module,lua,Module,Lua,如何在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()
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 = ?
您可能会返回以下几个结果:
返回A,B
…
本地A,B=需要“文件1”
但这是一个坏主意,因为缓存可能会失败
最好把它们都放在桌子上:
返回{A=A,B=B}
…
本地文件1=需要“文件1”
本地A,B=file1.A,file1.B
UPD:这只适用于Lua5.2+,但可能是最短和最清晰的:
返回{A,B}
…
本地A,B=表。解包(需要“文件1”)
您可以在最后两个上使用任意值。您的代码将A和B定义为全局值,因此可以在file2.lua中访问它们。我最初的回答确实不正确。下一个最佳解决方案可能是: