【问题标题】:iterate over lua table is not working迭代lua表不起作用
【发布时间】:2012-05-27 12:47:30
【问题描述】:

我有以下 lua 表:

t = {name="sandy", age="22", major="computerScience"}

我想对其进行迭代,以下两种方法都不起作用

方法一

function printAssociateTable(t) print("循环前") for i,v 在 ipairs(t) 中做 print(v) 结束结束

方法二

function printAssociateTable2(t) print("循环前") for k in ipairs(t) 做 print("循环前") print(k.." is "..t.k) end end

当我调用任何一种方法时,它们都会打印“循环前”。所以问题是程序没有进入循环!

如果我这样做,我尝试手动访问该表:

返回 t.name => 给桑迪

返回 t[名称] => 给出 nil

返回 t["name"] => 给桑迪!

如何迭代我的表?请注意,这两种方法都适用于像这样的简单数组

a={"a","b","c","d"}

但我希望它在我的关联数组上工作

【问题讨论】:

    标签: scripting lua luagl


    【解决方案1】:

    ipairs 迭代器仅选择具有 integer 键的数组元素。要遍历您需要 pairs 的所有键,如下所示:

    function printAssociateTable(t)
      print("before the loop")
      for i,v in pairs(t) do
        print(v)
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      • 2020-11-23
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多