将子表“捕捉”回Lua中的父表

时间:2016-07-03 14:11:20

标签: lua lua-table

我正在使用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。

0 个答案:

没有答案