【发布时间】:2014-02-24 12:12:48
【问题描述】:
这可能有点令人困惑,但我有一个表格,例如,名为Ant。
此表包含一堆其他(未命名的)表。这些表代表蚂蚁,并保存值。
有点像这样:
Ant = {
{age=3,speed=10},
{age=6,speed=7}
}
我的问题是,如何检查 Ant 表中的任何未命名表是否包含 age 的特定值。
因此,例如,我想检查我的蚂蚁是否年龄为 3 岁。
我希望我已经足够清楚了,在此先感谢!
【问题讨论】:
这可能有点令人困惑,但我有一个表格,例如,名为Ant。
此表包含一堆其他(未命名的)表。这些表代表蚂蚁,并保存值。
有点像这样:
Ant = {
{age=3,speed=10},
{age=6,speed=7}
}
我的问题是,如何检查 Ant 表中的任何未命名表是否包含 age 的特定值。
因此,例如,我想检查我的蚂蚁是否年龄为 3 岁。
我希望我已经足够清楚了,在此先感谢!
【问题讨论】:
您可以遍历表格并检查:
for i, v in ipairs(Ant) do
if v.age == 3 then
print( i )
end
end
它会 print the index 存放你 3 岁的蚂蚁。
【讨论】:
break 在print之后
Ant.mother 设置为蚂蚁之一:Ant.mother = Ant[i]。 (Ant 应该是 Ants 来表示一个数组而不是单个实例)
如果您只需要检查每个子表中age 的值,构建自定义迭代器是另一种方式:
function age_iter(t)
local i = 0
return function()
i = i + 1
return t[i] and t[i].age
end
end
要遍历所有 age 值将是:
for age in age_iter(Ant) do
print(age)
end
很容易修改它以检查age 值之一是否等于3。
【讨论】: