替换package.loaded中的函数

时间:2015-07-29 07:40:13

标签: lua packages lua-table lua-5.3

如何在package.loaded来电后require替换特定图书馆的所有功能?

我试图迭代相关的表,但表格显示为空。

local aLibrary = require "aLibrary"

for key,value in ipairs(package.loaded.aLibrary) do
    package.loaded.aLibrary[key] = function() end
end

2 个答案:

答案 0 :(得分:3)

下面的简单代码应该这样做(但请注意使用pairs代替ipairs)。

local aLibrary = require "aLibrary"

for key in pairs(aLibrary) do
    aLibrary[key] = function() end
end

请注意,require不会返回库表的副本,因此上面的代码会影响其内容而不用替换图书馆表。

换句话说,以后对require "aLibrary"的任何调用都将返回包含新函数的表。如果您不希望这种情况发生,那么您可能需要一个新表而不是更改其内容。

答案 1 :(得分:2)

如何使用pairs来通过键而不是仅使用索引?