Lua - 在多个表中查找键

对于我的程序,我有多个嵌套的表格来进行组织和阅读。这些表格可能看起来像这样

local buttons = {
      loadingScreen = {
          bLoadingEnter = function()
          end
      }, ...
}

我想做的是在表格中找到名为 bLoadingEnter 的第一个元素。我不知道名为 bLoadingEnter 的元素会在 loadingScreen 中。我想过获取表格中的所有键,然后检查它们。但我做不到这一点。任何帮助都将不胜感激!

点赞
用户9860656
用户9860656
对于 `buttons` 中的每个元素 `item`,如果 `item.bLoadingEnter` 不为 `nil`,则返回 `item.bLoadingEnter`。

(注:这段代码是 Lua 语言的语法,用于遍历一个数组 buttons 中的元素)

2018-06-04 18:17:08
用户4984564
用户4984564

如果执行速度有关,答案是:

不要

在嵌套表中查找键需要比在普通表中查找键要花费更多的时间。下一个问题是唯一性问题。两个或多个嵌套的表可以有相同的键但不同的值,这可能会导致奇怪的错误。在插入时要么检查它(使您的代码变得更慢),要么仅希望事情奇迹般地顺利进行并且以后不会出现意外的事情。

我会建议仅使用平面表。如果您的键的名称良好(例如bLoadingEnter),则无需嵌套即可推断其含义。

话虽如此,如果大多数时候您知道要采取哪个路径,或者当您具有某种有序结构,例如二分查找树时,嵌套表 可以 是一个好选择。或者如果速度真的不是需要考虑的重要因素。

2018-06-05 12:57:57