Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 如何将表名分配给变量?_Lua - Fatal编程技术网

Lua 如何将表名分配给变量?

Lua 如何将表名分配给变量?,lua,Lua,我有一张lua表格,里面有一些数据 sometable = { {name = "bob", something = "foo"}, {name = "greg", something = "bar"} } 然后我想循环遍历该表,并将一个数字作为变量分配给每个名称。我是lua的新手,就这样尝试过 for i,t in ipairs(sometable) do t.name = i end 然后我假设print(“name1”,bob)会给我name1=1。现在我得零

我有一张lua表格,里面有一些数据

sometable = { 
    {name = "bob", something = "foo"},
    {name = "greg", something = "bar"}
}
然后我想循环遍历该表,并将一个数字作为变量分配给每个名称。我是lua的新手,就这样尝试过

for i,t in ipairs(sometable) do
    t.name = i
end
然后我假设print(“name1”,bob)会给我name1=1。现在我得零分。因此,我回到了我丑陋的静态变量列表,直到某种灵魂告诉我我是个白痴。

该函数将只按升序在数字索引表中迭代

您要使用的是pairs函数。它将迭代表中的每个键,不管它是什么类型。

>sometable={{{name=“bob”,something=“foo”},{name=“greg”,something=“bar”}
>对于i,ipair(sometable)中的t不[t.name]=i结束
>对于i,t在ipairs(sometable)中,对于j,u成对(t)进行打印(j,u)结束
叫鲍勃
一些食物
鲍勃1
格雷格2
酒吧
名字格雷格
>返回sometable[1]。bob
1>

这不是问题所在;环很好;他应该用t[t.name]=i而不是t.name=i