我在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.现在我没有了。所以我回到我丑陋的静态变量列表,直到某种灵魂告诉我我是一个白痴。
答案 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函数将仅按数字索引表按升序迭代。
您想要使用的是对功能。它将迭代表中的每个键,无论它是什么类型。