2

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

4

2 回答 2

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) do for j,u in pairs (t) do print (j,u) end end      
name  bob
something foo
bob   1
greg  2
something bar
name  greg
> return sometable[1].bob
1>
于 2008-11-08T00:46:06.667 回答
-1

ipairs函数将仅按升序遍历数字索引表。

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

于 2008-11-07T07:06:48.050 回答