lua - 如何在另一个表中的另一个表中插入另一个表?
问题描述
我有一个关于 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 的初学者。
在此先感谢,我希望我最终能够得到一些专家的建议。
解决方案
如果您尝试仅插入数据,请尝试:
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
推荐阅读
- c++ - C ++ - 朋友运算符无法访问私有数据成员
- android-studio - 配置项目 ':game' 时出现问题。> java.lang.NullPointerException(没有错误信息)
- gcc - 除了调试之外,在 gcc 中使用 -O3 是否有任何可能的缺点?
- r - 如何在 R 中使用带有非数字索引的循环
- python - 绕过 recaptcha 对网站进行网络爬网
- php - Laravel 存储镜像
- django - 如何使用 Django 开发服务器将视频流式传输到多个客户端
- vhdl - “索引名称不是 std_logic_vector”
- git - 如何更改 git-flow 中默认的 git-flow 远程服务器名称?
- typescript - 尝试在 Vuex/TS 中使用模块时出现类型错误