【问题标题】:Lua Acessing table values within nested tableLua 访问嵌套表中的表值
【发布时间】:2018-04-12 07:07:06
【问题描述】:

我正在尝试在由嵌套表组成的网格上测试某些变量。但是,无论我尝试什么,它都不会给我存储在变量中的值,只有数据类型或 nil 值

y = {}
for _y = 0,16 do
    for _x = 0,16 do
        x = {}
        x.x = _x
        x.y = _y
        x.v = flr(rnd(2))

        if x.x < 1 or x.x > 14 then
            x.v = 3
        end


        if x.v == 0 then
            x.v = "."
        elseif x.v ==1 then
            x.v = ","
        else
            x.v = "0"
        end
        add(y,x)
    end
end

我尝试过使用

print(t[1][3])

但这只会打印一个 nil 值,我该如何编写代码以显示这两个表中的值中存储的内容?

【问题讨论】:

  • 不应该是print(y[1].x)吗?
  • 是的,您是否错误地使用 [3] 来获取 .v?

标签: lua nested lua-table


【解决方案1】:

你的嵌套如下:

y = {x_1, x_2, x_3, ...}

其中,每个x_i 的格式为:

x = {
  x = p,
  y = q,
  v = r
}

所以,每个x 元素的索引将是y[i],每个y[i] 包含3 个属性:

print(y[1].x)

会给你x_1.x

【讨论】:

    【解决方案2】:

    您想创建一个二维表,但只创建一个一维表。

    修正你的代码看起来有点像这样

    y = {}
    for _y=1,16 do
        y[_y] = {}
        for _x=1,16 do
            y[_y][_x]= "your data"
        end
    end
    

    【讨论】:

      猜你喜欢
      • 2017-05-14
      • 1970-01-01
      • 2023-03-09
      • 2014-06-04
      • 2020-05-05
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多