Lua - 以任意顺序调用表格

以下是我尝试实现的示例代码。

当我编译类似于这个结构的代码时,我会得到一个错误“尝试对空值全局表2进行索引”。我知道如果我将表2移到表1之前,这个错误就会消失。但是,我希望能够在我的脚本的任何地方引用任一表格。

因此,如果我在表11,我想能够引用表3,而无需重新排列我的脚本。

我在遍历表格方面是否有什么遗漏?

table1 = {
    property1 = "字符串",
    property2 = table1 [1],
    options = {
        optionTable [1],
        optionTable [2]
    },
    results = {
        table2,
        table3
    }
}

table2 = {
    property1 = "字符串",
    property2 = table1 [2],
    options = {
        optionTable [3],
        optionTable [4]
    },
    results = {
        table1,
        table3
    }
}

原文链接 https://stackoverflow.com/questions/69413372

点赞
stackoverflow用户3574628
stackoverflow用户3574628

你不能在表构造函数中创建循环引用,但是你可以在定义表之后通过索引赋值来创建循环引用。

table1 = {
  property1 = "string",
  options = {
    optionTable[1],
    optionTable[2]
  },
  results = {}
}
table1.property2 = table1[1]

table2 = {
  property1 = "string",
  property2 = table1[2],
  options = {
    optionTable[3],
    optionTable[4]
  },
  results = {
    table1,
  }
}
table1.results[1] = table2

table3 = {}
table1.results[2] = table3
table2.results[2] = table3

请注意,像 table1[1] 这样的内容在这里是 nil。我假设你的实际代码已经填充了这些内容。

2021-10-02 02:16:25