刚开始使用lua的人肯定会不满lua居然没有switch这个语法。

但是熟悉lua的强大特性之后,你会发现其实switch是完全没有必要提供的^.^,因为lua有强大的table和function

例子:

[plain] view plain copy

 
  1. local key = 1
  2. local switch = {
  3. [1] = function()
  4. print("switch:"..1)
  5. end,
  6. [2] = function()
  7. print("switch:"..2)
  8. end,
  9. ["test"] = function()
  10. print("switch:test")
  11. end,
  12. }
  13. local fSwitch = switch[key] --switch func
  14. if fSwitch then --key exists
  15. local result = fSwitch() --do func
  16. else --key not found
  17. end

模版如下:

[plain] view plain copy

 
  1. local switch = {
  2. [case1] = function()
  3. --case 1
  4. end,
  5. [case2] = function()
  6. --case 2
  7. end,
  8. }
  9. local fSwitch = switch[key] --switch func
  10. if fSwitch then --key exists
  11. local result = fSwitch() --do func
  12. else --key not found
  13. end

为sublime增加switch自动补全

方法:

1、菜单-Preferences-Tools-New Snippet ,sublime自动新建一个文件

2、把代码全部复制进去,然后保存,文件名填 switch.sublime-snippet

[plain] view plain copy

 
  1. <snippet>
  2. <content><![CDATA[local switch = {
  3. [${1:case1}] = function()
  4. ${2:--case 1}
  5. end,
  6. [${3:case2}] = function()
  7. ${4:--case 2}
  8. end,
  9. }
  10. local fSwitch = switch[${5:key}] --switch func
  11. if fSwitch then --key exists
  12. local result = fSwitch() --do func
  13. else --key not found
  14. end
  15. ]]></content>
  16. <tabTrigger>switch</tabTrigger>
  17. <scope>source.lua</scope>
  18. <description>switch-case</description>
  19. </snippet>

方法二:

1、新建文本文档,把复制代码进去,然后保存,文件名写switch.sublime-snippet

2、sublime菜单-Preferences-Browse Packages打开文件夹

3、把刚才保存的switch.sublime-snippet文件放入User目录里面

这样就可以在sublime里面使用了

效果如下

from: http://blog.csdn.NET/a82239946/article/details/42490405

转载:lua中switch的更多相关文章

  1. Lua中的常用语句结构以及函数

     1.Lua中的常用语句结构介绍 --if 语句结构,如下实例: gTable = {} ] ] then ]) == gTable[] then ]) else print("unkown ...

  2. 【转载】lua中的require机制

    [转载自]http://blog.chinaunix.net/uid-552961-id-2736410.html lua中的require机制 为了方便代码管理,通常会把lua代码分成不同的模块,然 ...

  3. 【转载】【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

    [游戏开发]在Lua中实现面向对象特性——模拟类.继承.多态   阅读目录 一.简介 二.前提知识 三.Lua中实现类.继承.多态 四.总结 回到顶部 一.简介 Lua是一门非常强大.非常灵活的脚本语 ...

  4. 【转载】Lua中实现类的原理

    原文地址 http://wuzhiwei.net/lua_make_class/ 不错,将metatable讲的很透彻,我终于懂了. --------------------------------- ...

  5. Lua 中的string库(字符串函数库)总结

    (字符串函数库)总结 投稿:junjie 字体:[增加 减小] 类型:转载 时间:2014-11-20我要评论 这篇文章主要介绍了Lua中的string库(字符串函数库)总结,本文讲解了string库 ...

  6. [lua] mac上如何编译snapshot(检测Lua中的内存泄露)

    最近我们的unity手游频繁闪退,只要进入战斗场景,之后一段时间就会闪退,如果是在unity编辑器中则会报出not enough memory的错误!猜测应该是有内存泄漏: 由于我们使用了tolua, ...

  7. lua中 table 元表中元方法的重构实现

    转载请标明出处http://www.cnblogs.com/zblade/ lua作为游戏的热更新首选的脚本,其优势不再过多的赘述.今天,我主要写一下如何重写lua中的元方法,通过自己的重写来实现对l ...

  8. C#中switch的使用

    今天在网上看到有人给出这么一个程序需求,博主就拿来回忆回忆C#中switch的用法 程序需求如下: 根据星期几(一 ~日) ,输出特价菜“一”.“二”.“三”,输出“干煸扁豆6元.”“四”.“五”,输 ...

  9. 【Unity游戏开发】Lua中的os.date和os.time函数

    一.简介 最近马三在工作中经常使用到了lua 中的 os.date( ) 和 os.time( )函数,不过使用的时候都是不得其解,一般都是看项目里面怎么用,然后我就模仿写一下.今天正好稍微有点空闲时 ...

随机推荐

  1. NVIDIA Geforce GT 730 OpenGL 图形显示异常花屏

    原因:C盘空间爆表,用dism++清理.结果用力过猛,清完后程序里的图形直接马赛克了... 上个图感受一下吧... 嘿别说,还有那么点艺术风! 别闹了,这个问题很严重,很严肃好不好! 因为程序和数据都 ...

  2. iOS - Quartz 2D 手势截屏绘制

    1.绘制手势截屏 具体实现代码见 GitHub 源码 QExtension QTouchClipView.h @interface QTouchClipView : UIView /** * 创建手势 ...

  3. Maven 搭建 SSM 项目 (oracle)

    简单谈一下maven搭建 ssm 项目 (使用数据库oracle,比 mysql 难,所以这里谈一下) 在创建maven 的web项目时,常常会缺了main/java , main/test 两个文件 ...

  4. LightOJ1341 Aladdin and the Flying Carpet

    题意 给一对数字 a,b ,a是一个长方形的面积,问有多少种整数的边的组合可以组成面积为a的长方形,要求最短的边不得小于b 数据组数T<=4000, a,b<=10^12 Solution ...

  5. PyCharm的注册码获取

    1.在server选项里边输入 http://elporfirio.com:1017/就可以了.  2.server选项里边输入 http://idea.imsxm.com/ 3.server选项里边 ...

  6. Session和Cookie总结

    一.Session和Cookie 1.Cookie 1.cookie创建于服务器,保存于浏览器,保存了特定网站操作记录和资料凭证的信息. 2.未设置cookie期限的时候,默认是关闭浏览器后cooki ...

  7. sql注入之一次艰难的绕过-三层防护(oracle)

    打开:www.xxxx.com/news/detail.jsp?id=2862 我们经过测试知道此处含有sql注入.我们尝试下: http://www.xxxxxx.com/news/detail.j ...

  8. Global.asax 中校验Session

    Application 相关的 Application_Init:在每一个HttpApplication实例初始化的时候执行. Application_Disposed:在每一个HttpApplica ...

  9. react-native导航器 react navigation 介绍

    开发环境搭建好之后,想要进一步了解react-native,可以先从react-native官网上的电影列表案例入手: https://reactnative.cn/docs/0.51/sample- ...

  10. 制作windows系统合盘:把win7和win8/8.1打包在一起

    平时装系统的时候我比较喜欢win8.1,但是经常给别人装系统的时候别人很多都喜欢win7,但是我觉得这样很麻烦,于是就想做一个合盘,这样就很方便了,win7旗舰版里面其实封装了四个系统,或者说一个系统 ...