ModuleScript

继承自

描述:

ModuleScript它只会运行一次,并且必定返回相同的一个值。然后在 ModuleScriptNode作为唯一参数的情况下,通过调用require返回此值。对于每个Lua环境,ModuleScriptNode运行且仅运行一次,并且在后续调用require时返回该相同的值。

ModuleScript多用于重复方法的使用,在代码编写时,应当只编写一次,在其他地方对其调用。这样可以避免复写重复的函数方法,也可以将方法进行模块化管理。一般来ModuleScript用于集合一类方法或定义较为相近的方法。

需要注意的是,首次调用的时候不会暂停,直到获取到返回值。根据这种情况,一定要主要ModuleScript的嵌套问题,例如 A(ModuleScript)B(ModuleScript) 进行了调用,但是 BA 也进行了调用,则线程将挂起,但是不会暂停也不会报错,所以当出现复杂嵌套时,一定要注意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)

Last Updated: