首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

lua模块几种方式

2013-01-07 
lua模块几种形式刚学,如果有问题看manual,不多说两个文件说明下testlib.lua在当前目录下,maxmin.lua在当前

lua模块几种形式

刚学,如果有问题看manual,不多说

两个文件说明下testlib.lua在当前目录下,maxmin.lua在当前目录的子目录lualibs下。

即./testlib.lua,./lualibs/maxmin.lua

测试过没有问题,大致可以清楚的阐述lua中的模块是怎么个样子,下面上代码:

testlib.lua

--[[ type 1maxmin={}local function min(a,b)    if a < b then return a    else return b endendlocal function max(a,b)    if a > b then return a    else return b endendfunction maxmin.findmax(...)    local data = ...    m = data[1]     for _,v in ipairs(data)    do        m=max(m,v)    end    return mendfunction maxmin.findmin(...)    local data = ...    m = data[1]    for _,v in ipairs(data)    do        m=min(m,v)    end    return mendreturn maxmin--]]---[[ type 2 无返回值,将table设置到package,之后外部require的时候照样能取到local M={}local modname = "lualibs.maxmin"_G[modname]=Mpackage.loaded[modname]=M--下面5行也可都注释掉--导出需要使用的全局变量到局部local print = printlocal ipairs= ipairs--设置模块环境为当前环境,即不需要_Glocal _ENV=M --lua 5.2,如果是之前版本则用setfenv(1,M)local function min(a,b)    if a < b then return a    else return b endendfunction M.max(a,b)    if a > b then return a    else return b endendfunction M.findmax(...)    local data = ...    m = data[1]    for _,v in ipairs(data)    do        m=M.max(m,v)    end    return mendfunction M.findmin(...)    local data = ...    m = data[1]    for _,v in ipairs(data)    do        m=min(m,v)    end    return mend--]]--[[ 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 endendlocal function max(a,b)    if a > b then return a    else return b endendfunction maxmin.findmax(...)    local data = ...    m = data[1]     for _,v in ipairs(data)    do        m=max(m,v)    end    return mendfunction maxmin.findmin(...)    local data = ...    m = data[1]    for _,v in ipairs(data)    do        m=min(m,v)    end    return mend--]]


热点排行