Lua中的数组嵌套数组

如果我在 Lua 中有这样的代码,我应该如何调用“this”?

array = { this = { pic="hi.png", health=4 } , pos=20 }

编辑:

例如,假设我有一个敌人表:

enemy = {}
enemy[1] = {pic="Ships/enem-01.png", hp=2}
enemy[2] = {pic="Ships/enem-02.png", hp=4}
enemy[3] = {pic="Ships/enem-03.png", hp=3}
enemy[4] = {pic="Ships/enem-04.png", hp=5}
enemy[5] = {pic="Ships/enem-05.png", hp=7}
enemy[6] = {pic="Ships/enem-06.png", hp=9}
enemy[7] = {pic="Ships/enem-07.png", hp=15}

然后,我想能够创建一个敌人位置的表。

level1 = {}
level1[1] = { ent = enemy[2], xpos= 20, ypos=20}

我如何使用 level1 调用 pic,还是不能?

我是否更改 level1 如下:

level1[1] = {ent = 2, xpos=20, ypos=20}

然后使用

screen:draw(level[1].xpos, level[1].ypos, enemy[level[1].ent].pic)

原文链接 https://stackoverflow.com/questions/8820110

点赞
stackoverflow用户312586
stackoverflow用户312586

翻译结果

level1[1] = { ent = enemy[2], xpos= 20, ypos=20}

我该怎么用 level1 来调用 pic 呢,或者我用不了呢?

你只需要这样做:

level1[1].ent.pic -- "Ships/enem-02.png"
2012-01-11 13:41:29
stackoverflow用户563154
stackoverflow用户563154

记住,在 Lua 中没有所谓的“数组”。唯一存在的复杂数据结构是“表格”,可以使用 { } 构建。

表格是一种关联结构,其中存储的每个数据都可以由任何类型的键索引:数字、字符串甚至其他表格。唯一的限制是 nil 类型。

让我们来看一个例子,我们想要构建一个有两个键的表格,一个是数字,一个是字符串:

example = { [1] = "numberkey", ["key"] = "stringkey" }

请注意,在上面的例子中,表格的构建方式不同于您的例子。你可以使用 [ ] 索引表格,如以下示例:

example[1]
example["key"]

但是这种创建和索引字符串键的语法非常冗长。因此,为了使我们的生活更轻松,Lua 提供了它称之为“语法糖”的东西:

example2 = { [1] = "numberkey", key = "stringkey" }

这个表格的内容与之前相同。但是,键“key”的声明方式不同。我们可以在表格构造函数中直接放置字符串键。为了索引它们,我们可以使用另一种“语法糖”:

example2.key

回到你的例子,你可以使用以下方式访问字符串键 this

array.this

对我的英语表示抱歉,这不是我的第一(和第二)语言。

2012-01-11 14:06:56