LUA 将_ENV中的名称添加到表格中后,如何从名称中打印 VALUE,而不仅仅是“名称”

LUA After adding names from _ENV into a table, how do I print the VALUE from the name and not just the "name"

提问人:DEMONVIC 提问时间:7/8/2022 最后编辑:ErwinDEMONVIC 更新时间:7/8/2022 访问量:114

问:

    X=123
    Y=321
    TAB1={}
    z=1
    for n in pairs(_ENV) do
        TAB1[z] = n
        z=z+1
    end

-- did some more steps that removes general _ENV and only left with my script global variables

    TAB2={x, y} 
    print(TAB2[1]) 

我想要的是“123”,但我得到的是“x”

我尝试过 gmatch、gsub、tostring,但我仍然无法让它打印 x (123) 的值。它只打印“x”

**对不起,我不知道如何为我的问题正确使用此文本框

变量 Lua 环境变量行

评论


答:

1赞 Luatic 7/8/2022 #1

我尝试了 gmatch、gsub、tostring,但我仍然无法让它打印 x (123) 的值。它只打印“x”

这些函数用于字符串操作,所以我看不出它们在这里有什么用处。缺少“值”的原因是你的循环是 。pairs 只是一个包装器,它返回 和 ,但您当前正在丢弃该值。只需将第二个变量添加到 for 名称列表中:.或者,使用 : 索引(在循环内)。for n in pairs(_ENV) donextkeyvaluefor name, value in pairs(_ENV) do print(value) end_ENVnprint(_ENV[n])

评论

0赞 DEMONVIC 7/8/2022
谢谢。这似乎正在起作用,我得到了更多不需要的数据,但我可以想出一种方法来获得我需要的东西。非常感谢!!
0赞 DEMONVIC 7/8/2022
哦,这太完美了。我在表 1 中放置了“name”,在表 2 中放置了“value”。然后排除不需要的数据,所以只剩下我的变量。现在我可以随时获得名称和价值!非常感谢!!!!