如何将所有符号从lua模块导入全局名称空间?

时间:2020-07-16 10:44:08

标签: import module lua love2d

在Python中,我们可以键入from math import *一次导入所有数学函数。

在Lua中如何做类似的事情?我希望从mathlove.graphicslove.audio等导入所有符号,以方便编写小型实验程序。

我知道这是不合时宜的。

1 个答案:

答案 0 :(得分:2)

在编写问题时,我想出了一种从模块中导入所有符号的方法:

function use(module, ...)
    for k,v in pairs(module) do
        if _G[k] then
            io.stderr:write("use: skipping duplicate symbol ", k, "\n")
        else
            _G[k] = module[k]
        end
    end
end

用法示例:

require "use"
use(math)
use(love.graphics)

print(sin(pi/6))

function love.draw()
    setColor(1, 0, 0)
    circle("fill", 300, 300, 100)
end