迭代lua表不起作用

Posted

技术标签:

【中文标题】迭代lua表不起作用【英文标题】:iterate over lua table is not working 【发布时间】: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"

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于迭代lua表不起作用的主要内容,如果未能解决你的问题,请参考以下文章

精灵表不起作用

插入蜂巢表不起作用

将存储过程数据插入临时表不起作用

bigrquery:使用 geoJSON 文件创建 BigQuery 表不起作用

通过立即执行创建表不起作用

Google Cloud Dataproc 删除 BigQuery 表不起作用