admin管理员组

文章数量:1794759

lua

lua

lua中是没有Switch语法的,所以很多时候要条件判断的时候只有一条又一条的if 和elseif 去写。当条件比较多且条件里面的内容比较多的时候,会显得比较乱,而且不利于我们后期去维护。但是lua的table类型其实相当强大,我们可以利用表结构和匿名函数,我们就可以实现Switch功能。

下面,归纳了3种常用的写法(其实原理一样):

第一种:

local tab = {[1] = function()print("aaa")end,[2] = function()print("bbb")end,[3] = function()print("ccc")end,
}function doFunc(cur_index)if tab[cur_index] thentab[cur_index]()end
end

第二种:

local tab = {[1] = "aaa",[2] = "bbb",[3] = "ccc",
}function doFunc(cur_index)if tab[cur_index] then_G[tab[cur_index]]()end
endfunction aaa()print("aaa")
endfunction bbb()print("bbb")
endfunction ccc()print("ccc")
end

第三种:

local Mgr = {}
switchMgr = MgrMgr.tab   = {[1] = "aaa",[2] = "bbb",[3] = "ccc",
}Mgr.doFunc = function(cur_index)if Mgr.tab[cur_index] thenMgr.tab[cur_index]()end
end

其他lua类调用的时候,可以

require("./switchMgr ") ;

switchMgr.doFunc(1)

本文标签: lua