lua 中访问表格的正确方式是什么?

我决定利用业余时间做一些有趣的事情,为 Garry's Mod 制作一些有趣的插件,来角色扮演。

我尝试制作的插件允许特定的门可租用,当某人租用该门时,主要所有者将定期收到付款!

但是我在访问表格方面遇到了一些问题。

-- 门是一个元函数,即所有实体的属性。 -- 在这种情况下,它属于门。

cRentableDoors = cRentableDoors or {} -- 全局表格

    function door:makeRentableSub( doorParent )
    -- GetNWBool() 是一个用于在服务器和客户端之间传输信息的函数,获得某些网络化的数据类型(例如,我们可以绘制 HUD)。

        if self:GetNWBool( "IsRentable" ) == false or nil then
                self:SetNWBool( "IsRentable", true )
                self:SetNWBool( "IsSub", true )

                cRentableDoors[doorParent:MapCreationID()] = {
                    MainDoor = doorParent,
                    SubDoors = {{ent = self, key = self:MapCreationID()}}
                }

        end
    end

只有一个问题。当我要添加一些子门时,“SubDoors”表格仅打印一个索引。我在这里覆盖了什么吗?

如有疑问,请随意提问!

谢谢!

点赞
用户1944004
用户1944004

问题出在这一行:

SubDoors = {{ent = self, key = self:MapCreationID()}}

这里有两层大括号,这使得这个表达式等同于:

SubDoors = { [1] = { ent = self, key = self:MapCreationID() } }

也就是一个只有一项的表的表。只需要去掉最外层的花括号,就没问题了,即:

SubDoors = {ent = self, key = self:MapCreationID()}
2018-03-04 21:32:05