刚学,如果有问题看manual,不多说两个文件说明下testlib.lua在当前目录下,maxmin.lua在当前目录的子目录lualibs下。即./testlib.lua,./lualibs/maxmin.lua测试过没有问题,大致可以清楚的阐述lua中的模块是怎么个样子,下面上代码:testlib.lualocal maxmin = require "lualibs.maxmin" local test={3,23,63,32,1,2} local min=maxmin.findmin(test) local max=maxmin.findmax(test) io.write("test array:") for _,v in pairs(test) do io.write(v," ") end io.write("
") print("min:" ,min) print("max:" ,max)maxmin.lua--[[ type 1 maxmin={}local function min(a,b) if a < b then return a else return b end endlocal function max(a,b) if a > b then return a else return b end endfunction maxmin.findmax(...) local data = ... m = data[1] for _,v in ipairs(data) do m=max(m,v) end return m endfunction maxmin.findmin(...) local data = ... m = data[1] for _,v in ipairs(data) do m=min(m,v) end return m endreturn maxmin --]]---[[ type 2 无返回值,将table设置到package,之后外部require的时候照样能取到 local M={} local modname = "lualibs.maxmin" _G[modname]=M package.loaded[modname]=M--下面5行也可都注释掉 --导出需要使用的全局变量到局部 local print = print local ipairs= ipairs --设置模块环境为当前环境,即不需要_G local _ENV=M --lua 5.2,如果是之前版本则用setfenv(1,M)local function min(a,b) if a < b then return a else return b end endfunction M.max(a,b) if a > b then return a else return b end endfunction M.findmax(...) local data = ... m = data[1] for _,v in ipairs(data) do m=M.max(m,v) end return m endfunction M.findmin(...) local data = ... m = data[1] for _,v in ipairs(data) do m=min(m,v) end return m end --]]--[[ type 3 使用lua5.1中的module函数,5.2没有module函数 module(...,package.seeall) local function min(a,b) if a < b then return a else return b end endlocal function max(a,b) if a > b then return a else return b end endfunction maxmin.findmax(...) local data = ... m = data[1] for _,v in ipairs(data) do m=max(m,v) end return m endfunction maxmin.findmin(...) local data = ... m = data[1] for _,v in ipairs(data) do m=min(m,v) end return m end --]]