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
這個操作還可以吧,學到新東西,開星~~ ?