在lua中访问表的正确方法是什么?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在lua中访问表的正确方法是什么?相关的知识,希望对你有一定的参考价值。

我决定和我的空闲时间进行一些有趣的活动,为Garry的Mod角色扮演做一些有趣的插件。

我试图制作的插件是允许特定的门可以出租,然后当有人租用那扇门时,主人将收到定期付款!

我有一些问题,表不能访问。

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

cRentableDoors = cRentableDoors or {} -- Global table

    function door:makeRentableSub( doorParent )
    -- GetNWBool() is a function used to network information
    -- on entities from server to client. ( so we can draw HUDs etc )

        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'表只打印1个索引。我在这里压倒一些东西吗?

随意问任何你不确定的问题!

谢谢!

答案

问题就在于此

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

你有两个级别的大括号​​,使这个表达式相当于

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

这是一个包含一个条目的表格表。只是去除外面的括号,你应该没事,即

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

以上是关于在lua中访问表的正确方法是什么?的主要内容,如果未能解决你的问题,请参考以下文章

Lua实现简单的类,继承,多态 实例

lua中 string.find()方法得不到正确的结果是怎么回事

lua 元方法 __index

Lua元表和元方法DaemonCoder

lua奇怪的继承

将初始数据提供给片段的正确方法?