如何将表名分配给变量?

时间:2008-11-07 06:55:36

标签: lua

我在lua中有一个包含一些数据的表。

sometable = { 
    {name = "bob", something = "foo"},
    {name = "greg", something = "bar"}
}

然后我想循环遍历表并为每个名称分配一个数字作为变量。 lua的新手,并尝试了这样。

for i,t in ipairs(sometable) do
    t.name = i
end

我当时假设打印(“name1”,bob)会给我name1 = 1.现在我没有了。所以我回到我丑陋的静态变量列表,直到某种灵魂告诉我我是一个白痴。

2 个答案:

答案 0 :(得分:4)

  

sometable = {{name =“bob”,something =“foo”},{name =“greg”,something =“bar”}}

     

for i,t in ipairs(sometable)do t [t.name] = i end

     

for i,t in ipairs(sometable)for j,u in pair(t)do print(j,u)end end

名字鲍勃

foo

bob 1

greg 2

某事吧

名称greg

  

返回sometable [1] .bob

1>

答案 1 :(得分:-1)

ipairs函数将仅按数字索引表按升序迭代。

您想要使用的是对功能。它将迭代表中的每个键,无论它是什么类型。