-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数
function module.func1()
io.write("这是一个公有函数!\n")
end
local function func2()
print("这是一个私有函数!")
end
function module.func3()
func2()
end
return module
-- test_module.lua 文件
-- module 模块为上文提到到 module.lua
package.path = 'package.path .. ";./?.lua';
require("module")
print(module.constant)
module.func3()
然后我运行 test_module.lua 就报错了 这两个文件我是放在同一个目录里的 日志如下
lua: D:\luaWorkSpace\test_module.lua:5: module 'module' not found:
no field package.preload['module']
no file 'package.path .. "'
no file './module.lua'
no file '.\module.dll'
no file 'E:\developTool\lua\lua\module.dll'
no file 'E:\developTool\lua\lua\loadall.dll'
stack traceback:
[C]: in function 'require'
D:\luaWorkSpace\test_module.lua:5: in main chunk
[C]: ?
请按任意键继续. . .
package.path = 'package.path .. ";./?.lua';
改为:
package.path = package.path .. ";./?.lua";
local m = require("module")
m.func3()
貌似你得把module声明为一个元表类型,就像c++声明基类一样,