Lua 数组为空参数
Lua array as parameter with null
我有一个问题,我需要使用从网络服务获得的可变参数调用一个函数...例如:
我有一个功能:
function MyPrint(param1, param2)
print(param1, param2)
end
我将这个函数保存在回调数组中:
callback[1] = MyPrint
我从服务器获取参数:
params = "[2, 88]" --> JSON from server
我愿意:
params = json.decode(params)
-- so
-- params[1] = 2
-- params[2] = 88
我尝试将此参数传递给我的回调:
pcall(callback[1], unpack(params))
我在 MyPrint 函数上得到 2
和 88
...
但是如果服务器发送 "[null, 88]"
,我在两个值上都得到 nil
...我读到 unpack
函数有空值问题...但是然后.. . 我怎样才能用一些 null
值调用 callback[1]
?
有没有办法不解压直接传递参数数组给函数?
编辑:我创建了 MyPrint 作为示例...但实际上我不知道有多少参数需要回调函数,我只有一个函数列表并且需要使用可变数量的参数调用它们我从服务器得到。
如果 table 有间隙,您应该明确指定要解包的索引范围:table.unpack(params, 1, table.maxn(params))
。这在 lua 5.1.5.
中运行良好
我有一个问题,我需要使用从网络服务获得的可变参数调用一个函数...例如:
我有一个功能:
function MyPrint(param1, param2)
print(param1, param2)
end
我将这个函数保存在回调数组中:
callback[1] = MyPrint
我从服务器获取参数:
params = "[2, 88]" --> JSON from server
我愿意:
params = json.decode(params)
-- so
-- params[1] = 2
-- params[2] = 88
我尝试将此参数传递给我的回调:
pcall(callback[1], unpack(params))
我在 MyPrint 函数上得到 2
和 88
...
但是如果服务器发送 "[null, 88]"
,我在两个值上都得到 nil
...我读到 unpack
函数有空值问题...但是然后.. . 我怎样才能用一些 null
值调用 callback[1]
?
有没有办法不解压直接传递参数数组给函数?
编辑:我创建了 MyPrint 作为示例...但实际上我不知道有多少参数需要回调函数,我只有一个函数列表并且需要使用可变数量的参数调用它们我从服务器得到。
如果 table 有间隙,您应该明确指定要解包的索引范围:table.unpack(params, 1, table.maxn(params))
。这在 lua 5.1.5.