ModuleScript
继承自:
描述:
ModuleScript它只会运行一次,并且必定返回相同的一个值。然后在 ModuleScriptNode作为唯一参数的情况下,通过调用require返回此值。对于每个Lua环境,ModuleScriptNode运行且仅运行一次,并且在后续调用require时返回该相同的值。
ModuleScript多用于重复方法的使用,在代码编写时,应当只编写一次,在其他地方对其调用。这样可以避免复写重复的函数方法,也可以将方法进行模块化管理。一般来ModuleScript用于集合一类方法或定义较为相近的方法。
需要注意的是,首次调用的时候不会暂停,直到获取到返回值。根据这种情况,一定要主要ModuleScript的嵌套问题,例如 A(ModuleScript) 对 B(ModuleScript) 进行了调用,但是 B 对 A 也进行了调用,则线程将挂起,但是不会暂停也不会报错,所以当出现复杂嵌套时,一定要注意ModuleScript之间相互的调用
示例代码:
在WorkSpace下创建一个Script脚本节点和ModuleScript脚本节点,填入对应内容
--ModuleScript
local PrintFunction ={}
function PrintFunction.Add(a,b)
return a+b
end
function PrintFunction.pri(c)
print(c)
end
return PrintFunction
--Script
local fun= require(script.Parent.ModuleScript)
Num = fun.Add(3,4)
fun.pri(Num)
