switch
是啥?别多想,不是游戏机? !
Lua
君说:虽然我没有case
,但是我有switch
啊,而且你还可以随意改名字,比如你爱慕已久的CuiHua
~
实际上switch
同学像是一个表
,丢给它一个a,它就把case:a
对应的地址给你,丢给它一个b,它就把case:b
对应的地址给你,丢给它一个c,人家说,不好意思啊哥,我这儿没有c,就走default
了哈~
既然是这样,我们就造个这样的表
(表,不就是table
吗?)出来吧~
-- 为了模拟在对象中的使用,我们创建一个Test类,在handleIndex()方法里实现switch-case
local Test = {}
function Test:new(o)
o = o or {}
setmetatable(o, self)
self.__index = self
return o
end
function Test:handleIndex(index)
-- switch是个table,牛叉的是我们可以在创建这个table时同时指定一些case及其对应的方法
-- 这样我们就能通过switch查找index对应的方法地址并调用
local switch = {
case_a = function ()
print("aa")
end,
case_b = function ()
print("bb")
end,
case_c = function ()
print("cc")
end,
case_d = function ()
print("dd")
end,
default = function ()
print("default")
end
}
if switch[index] then
switch[index]()
else
switch["default"]()
end
end
f = Test:new()
f:handleIndex("case_a") -- aa
f:handleIndex("case_e") -- default
这个操作还可以吧,学到新东西,开星~~ ?