如何从lua中的嵌套表中获取索引值?

问题描述 投票:1回答:1

我一直在用LOVE2D游戏引擎制作游戏,我遇到了一个问题。我想访问嵌套表中的变量,但我不知道如何。

这是我现在的代码:

local roomNum = 1
local rooms = { r1 = { complete = false, name = "Room 1" }

if rooms[roomNum].complete == true then --problematic line
    --do stuff
end

如果我用rooms[roomNum].complete替换rooms.r1.complete然后它的工作原理。

任何帮助,将不胜感激!

lua love2d
1个回答
1
投票

'Qazxswpoi'

提供的链接为Lua中的表提供了易于理解的示例,因此它可能在将来证明是一种有用的资源。

至于替换代码工作的原因,字典只是键/值对(kvp)的集合。在其他语言的示例中,这些对通常显示为KeyValuePair。

在您的情况下,您正在使用字典的使用方式。如您所见,您可以使用编号索引,如room [1],或者您可以使用像room [“kitchen”]这样的字符串。当您提供一组数据来初始化字典时,它会变得很有趣。

建立提供的数据,您有以下内容:

http://lua-users.org/wiki/TablesTutorial

r1相当于没有数据集的房间[“r1”]。在提供数据集时,可以引用任何“命名”键,就像它是字典的属性一样(考虑具有公共getter / setter的类)。对于数据集的命名键,您也可以提供键作为数字。

local rooms = { r1 = { complete = false, name = "Room 1" } 

这种索引符合您提供房间索引的方向。因此,您可以交换数据集以使用整数而不是r1,r2等,或者您可以连接r和索引编号。这完全取决于你。请记住,当您进一步向下筑巢时,适用相同的规则。因此,完整可能看起来像房间[1] .complete,rooms [“r1”] .complete,或rooms.r1.complete。

© www.soinside.com 2019 - 2024. All rights reserved.