刚开始使用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. 图像处理------基于Otsu阈值二值化

    一:基本原理 该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现. Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重 要的部分是寻找图像二值化阈值 ...

  2. 图解MBR分区无损转换GPT分区+UEFI引导安装WIN8.1

    确定你的主板支持UEFI引导.1,前期准备,WIN8.1原版系统一份(坛子里很多,自己下载个),U盘2个其中大于4G一个(最好 准备两个U盘)2,大家都知道WIN8系统只支持GPT分区,传统的MBR分 ...

  3. 利用Eclipse中的Maven构建Web项目(二)

    利用Eclipse中的Maven构建Web项目 1.新建源文件夹,Java Resources鼠标右键,"New-->Source Folder" 2.新建src/main/ ...

  4. java字符串替换的问题

    今天工作中遇到一个问题,需要输出mongodbObject中的部分内容,当我转换成字符串以后出现了好像无法替换的问题,经过验证,发现并非是不能替换,只是想法错误而已. package demo; /* ...

  5. 如何给filter添加自定义接口

    .在Cfilter类的定义中实现Interface接口的函数的定义: //-----------------------Interface methods----------------------- ...

  6. STM32f4 ARM Bootloader

    参考资料: 基于ARM 的嵌入式系统Bootloader 启动流程分析 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计) Android系统启动 ...

  7. Java多线程之Callable接口的实现

    Callable 和 Future接口  Callable是类似于Runnable的接口,实现Callable接口的类和实现Runnable的类都是可被其它线程执行的任务. Callable和Runn ...

  8. 【BZOJ1006】神奇的国度(弦图)

    [BZOJ1006]神奇的国度(弦图) 题面 BZOJ 题解 直接参考弦图的做法 #include<iostream> #include<cstdio> #include< ...

  9. 论文笔记(1):From Image-level to Pixel-level Labeling with Convolutional Networks

    文章采用了多实例学习(MIL)机制构建图像标签同像素语义的关联 . 该方法的训练样本包含了70 万张来自ImageNet的图片,但其语义分割的性能很大程度上依赖于复杂的后处理过程,主要包括图像级语义的 ...

  10. Asp.Net Boilerplate Project (ABP) 视频教程

    转自youtube:https://www.youtube.com/playlist?list=PLlu_PkRHZce-EtuVO1zVQpNgrB7Hiu1vu 虽然全部都没有声音,但看操作还是可 ...