要点:模块
建立一个table
创建一个名为 module.lua 的文件
module={} --和文件名可以不一致
module.var="sdl"
module.func1=function()
print("这是模块module的函数")
end
function module.func2()
print("模块方法可以放在外面")
end
local function fun3()
print("这个是局部函数")
end
function func4()
print("全局模块方法可以放在外面")
end
return module;
模块调用
-- require "模块名" 引用模块(文件的名字)
-- require (“模块名”) 这样引用也行
require "module" --直接接受
--这样可以不全部引用,只在需要时使用m来引用
m=require("module") --这样可以需要用的时候调用
print(module.var)
module.func1()
--module.func3() 无法使用局部函数
func4();
require加载机制
对于自定义的模块,模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。
require 用于搜索 Lua 文件的路径是存放在全局变量 package.path 中,当 Lua 启动后,会以环境变量 LUA_PATH 的值来初始这个环境变量。如果没有找到该环境变量,则使用一个编译时定义的默认路径来初始化。