小白一枚 自学lua 求大神回答

 -- 文件名为 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++声明基类一样,