函数require
用于加载模块
local m = require('math') --加载数学模块
-- 另一种写法
local modname = 'math'
local m = require(modname)
首先,函数
require
在表package.loaded
中检测模块是否已被加载,如已加载,则返回相应的值,否则搜索具有指定模块名的Lua文件,如找到,就用函数loadfile
将其加载,如果找不到,就搜索相应名称的C标准库。如果找到C标准库,则使用底层函数package.loadlib
进行加载
编写模块
创建一个表并将所有需要导出的函数放入其中,最后返回这个表。
local M = {} --模块
--创建一个新的复数
local function new(r, i)
return {r=r, i=i}
end
M.new = new --把'new'加到模块中
-- 定义常量 'i'
M.i = new(0,1)
function M.add(c1, c2)
return new(c1.r + c2.r, c1.i + c2.i)
end
function M.sub(c1, c2)
return new(c1.r - c2.r, c1.i - c2.i)
end
function M.mul (c1, c2)
return new( c1.r*c2.r - c1.i*c2.i, c1.r*c2.i + c1.i*c2.r)
end
local function inv(c)
local n = c.r^2 + c.i^2
return new(c.r/n, -c.i/n)
return M
--就可以使用require来加载他
local m = require"M"
--调用模块方法
m.add(1, 2)