2.module方法的使用
相当于执行了以下
3.关于module( ... , package.seeall)
一般在一个Lua文件内以module函数开始定义一个包。module同时定义了一
个新的包的函数环境,以使在此包中定义的全局变量都在这个环境中,而非
使用包的函数的环境中。理解这一点非常关键。 “module(..., package.seeall)”
的意思是定义一个包,包的名字与定义包的文件的名字相同,并且在包的函数
环境里可以访问使用包的函数环境。
使用方式
一般用require函数来导入一个包,要导入的包必须被置于包路径(package
path)上。包路径可以通过package.path或者环境变量来设定。一般来说,
当前工作路径总是在包路径中。
例如 文件 a.lua
文件 main.lua调用脚本a中的任何全局变量或者函数必须加上a.
实现在不同的lua文件中可以用相同的名称定义变量或者函数
-----------------------------------------------------------------------------------------------
注意,前面的几行代码都没了,只留下了一个module函数的调用。
module函数的调用已经相当于之前的那些代码了。
而package.seeall参数的作用就是让原来的_G依然生效,相当于调用了:setmetatable(M, {__index = _G});
再次留意一下,代码末尾的return M也不见了,因为module函数的存在,已经不需要我们主动去返回这个模块的table了。