2008-11-07 208 views
1

我在卢阿的一个表中有一些数据。如何将表名分配给变量?

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。现在我得到零。所以我回到了我的丑陋静态变量列表,直到某种灵魂告诉我我是个白痴。

回答

4

sometable = {{名称= “鲍勃” 的东西= “foo” 的},{名称= “格雷格”,东西= “酒吧”}}在ipairs

为I,T(sometable)做T [t.name] =我最终

为I,T在ipairs(sometable)在对做对于j,U(t)的做打印(J,u)的端端

名为Bob

东西foo

鲍勃1

格雷格2

东西吧

名格雷格

回报sometable [1] .bob

1>

-1

ipairs函数只会通过数字索引表按升序进行迭代。

你想要使用的是双功能。它将迭代表中的每个键,而不管它是什么类型。

+0

这不是问题;循环很好;他应该使用t [t.name] = i而不是t.name = i – 2008-11-08 01:05:16