Lua表到函数参数

时间:2017-01-20 18:20:10

标签: lua redis

我有一个使用格式的redis命令:

red:msetnx(key1, val1, key2, val2, key3, val3, ...)

我想在一个函数后面设置它,它接受一个键/值对的表并通过red:msetnx()运行 - 我如何将表格重新格式化为交替的键/值逗号分隔的参数列表和把它传递给函数?

2 个答案:

答案 0 :(得分:2)

可能有一种更易读的方法。

function foo (t)
   local f = {}
   for k,v in pairs(t) do
      table.insert(f, k)
      table.insert(f, v)
   end
   return table.unpack(f) -- depends on lua version table.unpack() or unpack()
end
red:msetnx(foo({key1="val1", key2="val2" --[[and so on]]}))

答案 1 :(得分:2)

按顺序创建一个包含键和值的表,并使用unpack传递它:

args = { 'key1', 'val1', 'key2', 'val2', 'key3', 'val3' }
red:msetnx(unpack(args))