Lua里的"switch-case"语句
来源:互联网 发布:ubuntu 本地源 编辑:程序博客网 时间:2024/05/19 03:29
Lua本身并没有提供switch-case语句,难道说我们就只能靠不断的"if ... elseif ... "这样冗长的方式来实现选择的功能么?当然不是这样的。Lua提供了功能强大的metatable,我们可以选取任意的数据类型作为table的索引类型和元素类型。而实质上在C语言中,switch-case语句是根据不同的情况(参数的值)来选择执行不同的动作,数组则是根据不同的下标返回对应的数据。如果函数可以作为一种数据类型存在,那么很明显switch-case语句只是生成了一个元素类型是函数的数组而已(其实C编译器也确实是这么做的)。在Lua里函数确实是一种数据类型, 所以自然而然就可以像下面这样写出:
<pre class="cpp" name="code">print "Hello, switch-case"local switch = { [1] = function() -- for case 1 print "Case 1." end, [2] = function() -- for case 2 print "Case 2." end, [3] = function() -- for case 3 print "Case 3." end}local a = 4local f = switch[a]if(f) then f()else -- for case default print "Case default."end
1 0
- Lua里的"switch-case"语句
- Java的switch-case语句
- switch case语句的使用
- switch case语句的用法
- switch case里声明变量的问题
- switch-case语句中,case下的语句问题
- 数据库里类switch语句和三元运算符的使用(case)
- switch 和 case 语句的参数
- 关于switch语句的case 嵌套
- switch...case语句的深入学习
- switch()case:语句的优化
- switch 语句关于case的使用
- switch… case 语句的用法
- switch中case语句的可用类型
- switch case 语句的初步运用。。
- switch… case 语句的用法
- switch… case 语句的用法
- switch/case语句支持的数据类型
- Android开发——去除actionbar左上角的图标,只显示标题
- 字符串截取方法java
- 黑马程序员--反射--利用反射获取方法名和字段名
- 在Solaris上使用LD_OPTIONS环境变量诊断编译链接问题
- gvim winmanager插件
- Lua里的"switch-case"语句
- 矢量运算辅助工具
- 在项目中结合使用 assign 和js_string
- 视频编解码学习之三:变换,量化与熵编码
- linux常用编辑器
- S3C2440的SPI解析
- 摘抄:mysql set names和set_charset的区别
- webrtc(不定时更新)
- poj 3264 线段树