【问题标题】:Lua table convertLua 表转换
【发布时间】:2013-11-24 05:36:52
【问题描述】:

我是 lua 新手,我有一张表 foo,我想将其转换为 bar,如下所示:

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

lua 有内置方法吗?

【问题讨论】:

  • 如何区分键和值?
  • @hjpotter92 奇数项是键,偶数项是值

标签: lua lua-table


【解决方案1】:

来自您的recent comment,试试这个:

local bar, iMax = {}, #foo
for i = 1, iMax, 2 do
    bar[foo[i]] = foo[i + 1]
end

【讨论】:

    【解决方案2】:

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

    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} 是字符串键的语法糖。

    【讨论】:

      猜你喜欢
      • 2016-04-08
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2013-12-23
      • 2019-08-13
      • 1970-01-01
      相关资源
      最近更新 更多