Lua实现switch-case

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

这个操作还可以吧,学到新东西,开星~~ ?

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值