如何将一个表格插入到另一个表格中,而这个表格又在另一个表格中?

我有一个关于LUA的问题。

我一直在修改一款老旧的游戏时使用LUA,最近遇到了一个问题,几天来一直无法解决。

简单来说,我只是想在另一个表格中插入一个数据表,但是我要插入的表格恰好位于另一个表格中,而这个表格本身又是另一个表格中的一个条目。

我知道这听起来可能很困惑,因此我制作了简化后的图表来说明情况。

在下面的图表中,我想将“[1]”插入到“ Platforms ”中。

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

     [1] = {*data*},

}

换句话说,我的主要问题是: 如何将“[1]”插入到“[Platforms]”中,而不进行以下操作:

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {

          [1] = {*data*},

     },

}

在这里,我想要完成的一个值得注意的事情是,在“VehicleClass[1]”中将“[1]”插入到“[Platforms]”中,但我已经有点怀疑这是不可能的。

我在LUA方面仍然是一名初学者,因此我花了一些时间尝试解决问题。事先,我尝试过做一些事情,比如:

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

     [1] = {*data*},

     table.insert(VehicleClass[1]["Platforms"], VehicleClass[1][1]),
}

或者

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

     ["Platforms"][1] = {*data*},
}

但是我之前的所有尝试都失败了。

我可能会错过一些在这里所需的特殊LUA格式,正如我所说,我仍然是LUA的初学者。

提前感谢您的帮助,我希望最终能够得到一些专家的建议。

点赞
用户7746452
用户7746452

如果你想要插入数据,尝试以下代码:

table.insert(VehicleClass[1]["Platforms"], 1, {*data*})

如果你想要插入数据但是检查数据是否存在,如果存在则更新数据,尝试以下代码:

VehicleClass[1]["Platforms"][1] = {*data*}

如果你想要创建一个新的对象:

VehicleClass =
{
  {
    ["Platforms"] = {
      {*data*}
    }
  }
}

如果你对这个代码有些迷惑,那么我建议分步操作:

local myPlatformData = {*data*}
local myPlatformsData = { myPlatformData }
local myVechicle = { ["Platforms"] = myPlatformsData }
VehicleClass = { myVechicle }

或者更简单:

local myPlatformData = {*data*}

local myPlatformsData = {}
myPlatformsData[1] = { myPlatformData }

local myVechicle = { ["Platforms"] = myPlatformsData }
VehicleClass = {}
VechicleClass[1] = myVechicle
2020-02-26 07:30:37