• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua里的"switch-case"语句

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Lua本身并没有提供switch-case语句,难道说我们就只能靠不断的"if ... elseif ... "这样冗长的方式来实现选择的功能么?当然不是这样的。Lua提供了功能强大的metatable,我们可以选取任意的数据类型作为table的索引类型和元素类型。而实质上在C语言中,switch-case语句是根据不同的情况(参数的值)来选择执行不同的动作,数组则是根据不同的下标返回对应的数据。如果函数可以作为一种数据类型存在,那么很明显switch-case语句只是生成了一个元素类型是函数的数组而已(其实C编译器也确实是这么做的)。在Lua里函数确实是一种数据类型, 所以自然而然就可以像下面这样写出:

 1 print "Hello, switch-case"
 2 
 3 local switch = {
 4     [1] = function()    -- for case 1
 5         print "Case 1."
 6     end,
 7     [2] = function()    -- for case 2
 8         print "Case 2."
 9     end,
10     [3] = function()    -- for case 3
11         print "Case 3."
12     end
13 }
14 
15 local a = 4
16 local f = switch[a]
17 if(f) then
18     f()
19 else                -- for case default
20     print "Case default."
21 end

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
OpenResty 扩展库之(一)——lua-resty-shell 库发布时间:2022-07-22
下一篇:
lua string匹配模式发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap