2008-11-07 212 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