将子表 "拍回" Lua 中的父表

我正在为Minecraft中的ComputerCraft mod编写一个程序库。该库是一个档案库,它使用Lua中的table.serialize函数来存档文件。 在每个函数中,您可以提供要使用的文件夹(子表); 例如,add_folder(table,"new_folder","folder1","another_folder")new_folder添加到folder1中的another_folder。 我已经制作了一个递归函数来从文件夹列表中获取表:

local function getFolder(table,...)return getFolder(table [select(1,expand(arg))],expand(table.remove(table,1)))end

当我添加信息时,这很有效,但是函数返回了一个修改的这个子表的版本,如add_folder函数所示:

function add_folder(table,name,...)
 local folders = getFolder(table ["data"],expand(arg))
 folders [name] = {} 
 return folders - 返回不完整的表
end

我想将此子表"拍回"到其父表中,以使上述函数返回整个表。 我如何将此子表带回父表?

请注意,我无法使用使用C模块的库,因为Lua的ComputerCraft实现只是解释器,而不是设计用于使用已编译的模块。 否则,我会完全使用TAR。

点赞