关于 module 的疑问。
lua吧
全部回复
仅看楼主
level 1
无♤忧
楼主
网上没有找到关于这个问题的答案。
类似这样。
--mode.lua------
module('Game', package.seeall); --这里的Game 不用跟mode.lua 同名吗?相当于已经定义出一个Game的模块?
.
--.init.lua
LoadLuaFile(mode.lua);
其他文件 比如:
--main.lua
直接就掏出Game使用了。
2019年12月16日 10点12分
1
level 2
necrohan
模块定义实际上是返回一个table,table名称和文件名称无关,也可以用一些命令相关,但是在你的例子里明显是直接指定返回table名称的。
load之后相当于得到了那个table,就可以直接用。
module这个命令在5.3里已经取消了。
2019年12月17日 01点12分
2
无♤忧
再问一个问题行吗?:load以后,game这个模块可以使用了。game这个模块里面可以调用的成员, 是mode.lua里的全局函数和全局变量吗?我就是看到网上“模块定义实际上是返回一个table”这样的说法更疑惑,这个table,没见到 定义 赋值 ,里面直接就有东西了。
2019年12月17日 03点12分
necrohan
@无♤忧
table是个筐,什么都能装。得到table后,table里有什么就能用什么,比如table里的函数、变量。 LoadLuaFile不是lua标准函数,我不清楚是怎么实现的,按一般规则,是不应该返回全局函数或者全局变量的,但不是不能。
2019年12月24日 06点12分
necrohan
@无♤忧
可以把mode.lua看作就是对table Game进行定义和赋值的,loadluafile相当于执行一遍那些语句,是不是好理解一点?
2019年12月24日 06点12分
1