迭代lua表不起作用

时间:2012-05-20 23:39:44

标签: scripting lua luagl

我有以下lua表:

  

t = {name =“sandy”,age =“22”,major =“computerScience”}

我想迭代它,下面的两个方法都不起作用

方法1

  

函数printAssociateTable(t)打印(“循环前”)i,v   在ipairs(t)做       print(v)end end

方法2

  

函数printAssociateTable2(t)打印(在循环之前“)用于k in   ipairs(t)做       打印(“循环前”)       print(k ..“是”..t.k)end end

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

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

  

返回t.name    =>给沙子

     

return t [name]    =>给出 nil

     

return t [“name”]     =>给沙子!

我怎么能遍历我的桌子?请注意,这两种方法都适用于像这样的简单数组

  

α= { “一”, “B”, “C”, “d”}

但我想让它在我的关联数组

上工作

1 个答案:

答案 0 :(得分:4)

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

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