【Lua】多脚本引用

在当前脚本引用其他脚本:require("脚本名")
package.loaded()

package.loaded返回的本身是一个Lua的全局表,它也被存储在了_G表中,即

package.loaded 和**_G["package"].loaded** 和**_G["package"]["loaded"]**三者本质上一样

它用于记录已经被require()加载过的模块

package.loaded["脚本名"] 只能返回一个值,它的本质是一个table的查找操作,即从package.loaded这个table中取出键为"脚本名"的值
例子:

local result = package.loaded["脚本名"]

1.package.loaded["脚本名"] 前有require("脚本名")

a.若被加载的脚本有return值:获取到的result值为return的第一个值

b.若被加载的脚本没有return值:获取到的result值为true

2.package.loaded["脚本名"] 前没有require("脚本名")

a.result值为nil
被加载的脚本再次调用require不会被二次加载,当脚本被第一次加载后,会被存储在package.loaded这个table内,package.loaded["脚本名"]存储了对应的引用,而在每次的require时,会再次检查这个表,看看是否已经加载了对应的脚本。