您的位置:首页 > 编程语言 > Lua

Lua里的"switch-case"语句

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

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 = 4
local f = switch[a]
if(f) then
f()
else                -- for case default
print "Case default."
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐