7

我是 lua 新手,我有一个表foo,我想将其转换为bar如下所示:</p>

foo:{key1,value2,key2,value2} ==> bar:{key1=value1,key2=value2}

lua 有内置方法吗?

4

2 回答 2

6

根据您最近的评论,试试这个:

local bar, iMax = {}, #foo
for i = 1, iMax, 2 do
    bar[foo[i]] = foo[i + 1]
end
于 2013-11-12T07:25:21.970 回答
4

这是使用迭代器的一种解决方案:

function two(t)
    local i = -1
    return function() i = i + 2; return t[i], t[i + 1] end
end

然后你可以像这样使用迭代器:

local bar = {}
for k, v in two(foo) do
    bar[k] = v
end

请注意,它应该是bar = {[key1]=value1, [key2]=value2}. 在您的示例中,{key1=value1,key2=value2}是字符串键的语法糖。

于 2013-11-12T07:46:25.120 回答