在Lua中将表作为参数传递给函数

我想通过只传递初始表作为参数来循环遍历不同的索引表。

我目前有这个表:

我想编写一个递归函数,检查这些表中的任何名称是否等于某个特定内容,并返回一个字符串。

递归在于将这个表更新为任意数量(或达到某个限制)。我不明白到底出了什么问题,因为当我尝试这样做时:

但是当将表用作该函数的参数时,它会给出以下错误:

这个问题在于没有忽略使用对表进行循环时,它不仅有一个具有类别子表的表,而且还有一个名为 category 的表,如果忽略这一点,问题就可以解决。

点赞
用户501459
用户501459

你正在递归进入没有 categories 字段的子表中。尝试在它们上面访问 categories 会得到 nil,然后你尝试使用长度操作符。因此你会遇到这个错误:

  attempt to get length of field 'categories' (a nil value)

如果你无法手动追踪你的应用程序,请添加更多的打印语句或获取行级调试器。

2015-09-30 04:32:00