Redis中的Lua Set无法正常工作

0s7z1bwu  于 12个月前  发布在  Redis
关注(0)|答案(1)|浏览(216)

我是Lua脚本的新手,在Lua中创建Set时遇到了一些问题。我试图使用下面的代码在Lua Set中存储独特的元素,但它并没有像预期的那样工作。

local function test() 
 local t1 = {11,11,22,33,33,44,55,66,77,88,99}
 local t = {}
 for i, v in ipairs(t1)
 do
  t[v] = v
 end
 return t
end

字符串
这个函数应该从t1返回唯一的元素,但它返回空数组。我想我做错了什么,但不知道是什么。有人能帮忙吗?
读了很多关于Lua Sets的文章,仍然无法解决问题。尝试在docker中本地运行脚本,使用不同的修改/方法,但没有任何帮助

iklwldmw

iklwldmw1#

Redis将Lua表转换为数组回复,你必须确保你的Lua表是一个数组,即index(表键)从1开始。
然而,在你的例子中,t[1]是nil,Redis将其作为一个空数组。
为了解决这个问题,你需要将t转换为数组:

-- Your original code generating table `t`

-- Then convert `t` to an array.
local res = {}
for k, v in pairs(t) do
   res[#res + 1] = v
end
return res

字符串

相关问题