package.loaded
调用后如何替换特定库的所有函数require
?
我试图遍历相关的表,但表是空的。
local aLibrary = require "aLibrary"
for key,value in ipairs(package.loaded.aLibrary) do
package.loaded.aLibrary[key] = function() end
end
下面更简单的代码应该做到这一点(但请注意使用 ofpairs
而不是ipairs
)。
local aLibrary = require "aLibrary"
for key in pairs(aLibrary) do
aLibrary[key] = function() end
end
请注意,require
它不会返回库表的副本,因此上面的代码会影响其内容而不替换库表。
换句话说,以后的任何调用都require "aLibrary"
将返回带有新函数的表。如果您不希望这种情况发生,那么您可能需要一个新表而不是更改其内容。
如何使用对来遍历键而不是仅索引?