来自Lua编程,第 2版。,第 23 页,第3.6 章表构造函数:
...也就是说,所有表都是平等的;构造函数只影响它们的初始化。每次 Lua 计算一个构造函数时,它都会创建并初始化一个新表。...
因此,表构造函数{ x=5 , y = test.x }
首先创建一个新的表对象,该对象在被完全评估 (!) 后被分配给 name test
。
这或多或少会在您的代码中发生:
test = {}
TEMP_TABLE = { x=5 , y=test.x } --> x=5, y=nil
test = TEMP_TABLE