首页 > 解决方案 > 如何在另一个表中的另一个表中插入另一个表?

问题描述

我有一个关于 LUA 的问题。

我在修改旧视频游戏时已经使用 LUA 有一段时间了,最​​近我遇到了一个问题,经过几天的尝试后我无法解决。

用最简单的话来说,我要做的就是在另一个表中插入一个数据表,但是我试图插入的表恰好位于另一个表中,它本身就是另一个表中的一个条目.

我知道这听起来一定很混乱,因此我做了一个简化的情况图。

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

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

     [1] = {*data*},

}

换句话说,我的主要问题改写了:如何在不执行以下操作的情况下将“[1]”插入“[Platforms]”:

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {

          [1] = {*data*},

     },

}

我在这里尝试实现的一件值得注意的事情是将“[1]”插入“[“Platforms”]”中的“VehicleClass [1]”,但是我已经有点怀疑这是不可能的。

我仍然是 LUA 的初学者,因此我花了一些时间尝试自己解决这个问题。事先我尝试做类似的事情:

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

     [1] = {*data*},

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

或者

VehicleClass = {}

VehicleClass[1] =
{

     ["Platforms"] = {},

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

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

我可能错过了这里需要的一些特殊的 LUA 格式,因为我说过我仍然是 LUA 的初学者。

在此先感谢,我希望我最终能够得到一些专家的建议。

标签: lua

解决方案


如果您尝试仅插入数据,请尝试:

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

推荐阅读