【发布时间】:2021-05-01 21:51:33
【问题描述】:
尝试使用表作为从外部传入的用户生成数据的查找。
tab = { ['on'] = function(x) x=x+1 return x end,
['off'] = function(x) x=x+2 return x end,
['high']= function(x) x=x+3 return x end,
['low'] = function(x) x=x+4 return x end
}
do
local var=0
local userData='on'
var = tab[userData](var)
print(var)
if var>0 then
--do something here
else
end
end
如果该值存在于表中(userData='on'),则程序按预期工作并打印
$lua main.lua
1
如果表中不存在该值(userData='fluff')程序失败
$lua main.lua
lua: main.lua:11: attempt to call a nil value (field '?')
stack traceback:
main.lua:11: in main chunk
[C]: in ?
如果键不存在,我该如何使用这样的表?
【问题讨论】:
-
在尝试使用结果进行函数调用之前检查以确保
tab[userData]返回非 nil。 -
你是对的。谢谢。
标签: lua