刚学,如果有问题看manual,不多说
两个文件说明下testlib.lua在当前目录下,maxmin.lua在当前目录的子目录lualibs下。
即./testlib.lua,./lualibs/maxmin.lua
测试过没有问题,大致可以清楚的阐述lua中的模块是怎么个样子,下面上代码:
testlib.lua
- local 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("\n")
- 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
- end
- local function max(a,b)
- if a > b then return a
- else return b end
- end
- function maxmin.findmax(...)
- local data = ...
- m = data[1]
- for _,v in ipairs(data)
- do
- m=max(m,v)
- end
- return m
- end
- function maxmin.findmin(...)
- local data = ...
- m = data[1]
- for _,v in ipairs(data)
- do
- m=min(m,v)
- end
- return m
- end
- return 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
- end
- function M.max(a,b)
- if a > b then return a
- else return b end
- end
- function M.findmax(...)
- local data = ...
- m = data[1]
- for _,v in ipairs(data)
- do
- m=M.max(m,v)
- end
- return m
- end
- function 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
- end
- local function max(a,b)
- if a > b then return a
- else return b end
- end
- function maxmin.findmax(...)
- local data = ...
- m = data[1]
- for _,v in ipairs(data)
- do
- m=max(m,v)
- end
- return m
- end
- function maxmin.findmin(...)
- local data = ...
- m = data[1]
- for _,v in ipairs(data)
- do
- m=min(m,v)
- end
- return m
- end
- --]]