【问题标题】:Target element in array in array, Lua数组中的目标元素,Lua
【发布时间】:2015-11-17 02:47:55
【问题描述】:

所以我是 lua 新手,我无法弄清楚如何在数组中定位数组中的元素。

表格和数组一样吗?为什么数组和对象具有相同的语法?有区别吗?

【问题讨论】:

    标签: multidimensional-array lua lua-table


    【解决方案1】:

    只需多次使用表索引运算符,例如:

    local data = { { "northwest", "north", "northeast" },
                   { "west",      nil,     "east"      },
                   { "southwest", "south", "southeast" } }
    print(data[2][3])  -- prints east
    

    关于表、数组、对象等的混淆:Lua 没有“数组”。 Lua 没有“对象”。对于结构,Lua 只有表,可以作为数组使用,也可以作为对象使用——但对于 Lua 来说,它是一张表。它们就是你所创造的。

    【讨论】:

    • 我收到一个错误:尝试索引一个 nil 值。 table.insert(tails, table.getn(tails), {x = snake.x, y = snake.y}) 将表定位为:tails[1][1]tails[1][2]
    • @Rasmus:(我将退回到说“数组”和“对象”,因为虽然 Lua 没有区别,但我们在谈论事物时经常会做出这种区分。)它看起来不像有一个二维数组,而是有一个具有xy 属性的一维对象数组。您是否尝试通过其 xy 值获取对象之一?
    • 我想要一个包含对象的数组。所以我可以:somex = tails[1][1] 应该指的是tails -> {{x=*10*, y =15},{x=5,y=10}}
    • @Rasmus:哦,在这种情况下,内部索引将是一个字符串,例如somex = tails[1]["x"],Lua 允许您方便地将其缩写为 somex = tails[1].x
    猜你喜欢
    • 2017-02-09
    • 2014-05-21
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2013-11-27
    • 2014-05-06
    • 2020-01-23
    相关资源
    最近更新 更多