关于lua中模块的使用问题
lua吧
全部回复
仅看楼主
level 1
w暗方w😄 楼主
为什么这样使用不行?
AFileJustForTest.lua
local print = print
module "JustForTest"
function fun()
print(_NAME)
end
AMainJustForTest.lua
require "JustForTest"
JustForTest.fun()
不是说module “mymodule” 等同于以下的语句吗:
local modname = “mymodule”
local M = {}
_G[modname] = M
package.loaded[modname] = M
setfenv(1,M)
不是说module(name)会将package.loaded[name]设为true,并会新建一个表将其作为package.loaded[name]的新值吗?那require第一个查找的就是package.loaded[name],为什么编译时却会报错找不到呢?
难道require后面只能接文件名?
新学lua,望大神们能够帮忙解答。
2014年12月14日 01点12分 1
level 8
.............这个好像我几天前才答过类似的,我找找
2014年12月14日 02点12分 2
level 8
使用require 函数时它会按照package.path的模式寻找模块,例如
现在package.path="?.dll;?.lua;"
调用require ("JustForTest")
他会寻找当前目录下的 JustForTest.dll 或者 JustForTest.lua。
但是你写出来的是AFileJustForTest.lua所以找不到是正常的。
所以应该把AFileJustForTest.lua文件放在当前目录,调用
JustForTest=require ("JAFileustForTest")
以上
2014年12月14日 02点12分 3
level 11
而且,先看一下你的lua版本,5.2以后就没有module函数了,5.2以后需要用户自己实现module机制……
2014年12月14日 10点12分 4
level 8
对了,lua中的module函数在我看来真的不常用.例如Don't Starve(饥荒)这款收费的单机游戏一共12M的lua代码,根本没有用到module函数,还有一款开源用wxlua写的lua 编辑调试器一共4万行代码,也没有用到module.我学lua三年了,除了一开始看lua程序设计写例子时用到,不过一下子就忘了,以至于现在我都不会用了...................
有些东西不一定要百分百精通,能满足需要就行.
2014年12月15日 04点12分 5
1