我正在使用Minecraft中的ComputerCraft mod为程序创建一个库。该库是一个归档库,它使用Lua中的table.serialize函数来归档文件。在每个函数中,您可以提供要使用的文件夹(子表);例如add_folder(table, "new_folder", "folder1", "another_folder")
将new_folder
添加到another_folder
内的folder1
。我已经做了一个递归函数来从文件夹列表中获取表格:
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 --Returns incomplete table
end
我想将此子表“捕捉”回父级,以便上述函数将返回整个表。如何将此子表重新置于父表中?
请注意,我不能使用使用C模块的库,因为Lua的ComputerCraft实现只是一个解释器,并不是设计用于编译模块。否则,我会完全使用TAR。