Lua不允许表追加

Lua不允许表追加,lua,lua-table,Lua,Lua Table,我已经在全局变量下有一个lua表a={},a.B={}。我有一个函数,用于调用创建lua表的内容D1={},D1.D2={},但问题是这个函数将表放在全局变量列表中。当我打印所有lua值时,它会打印: A={},A.B={},D1={},D1.D2={}。是否有一种方法可以在a={},a.B={}下的表下创建函数,这意味着我希望输出为: A={},A.B={},A.B.D1=={},A.B.D1.D2={}。我不想使用table.insert(),因为源表的hirarch是未知的。听起来像是您在

我已经在全局变量下有一个lua表
a={},a.B={}
。我有一个函数,用于调用创建lua表的内容
D1={},D1.D2={}
,但问题是这个函数将表放在全局变量列表中。当我打印所有lua值时,它会打印:
A={},A.B={},D1={},D1.D2={}
。是否有一种方法可以在
a={},a.B={}
下的表下创建函数,这意味着我希望输出为:
A={},A.B={},A.B.D1=={},A.B.D1.D2={}
。我不想使用table.insert(),因为源表的hirarch是未知的。

听起来像是您在这里要做的,就是将表传递给创建
D1
D1.D2
的函数,这样您就可以将这些值附加到任何需要的地方

function addTable(tbl)
    tbl.D1 = {}
    tbl.D1.D2 = {'test'}
end

addTable(A.B)
-- now you can call A.B.D1.D2
print(A.B.D1.D2[1]) -- prints 'test'

你也不需要零零碎碎地完成作业。您只需在addTable的主体中使用
tbl.D1={D2={'test'}}
。请注意
table.insert
仅适用于索引插入。你不能用它按键插入。你不是已经要求了吗?