将Lua表格转换为函数参数

3

我有一个使用以下格式的Redis命令:

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

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

2个回答

3

有可能存在一种更易读的方式来实现这个功能。

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]]}))

2
创建一个按照键和值的顺序排列的表格,并使用unpack传递它:
args = { 'key1', 'val1', 'key2', 'val2', 'key3', 'val3' }
red:msetnx(unpack(args))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接