Lua))如何循环表的表并获取特定的属性?

时间:2018-04-17 15:51:43

标签: lua lua-table pico-8

我真是lua的新手。我有这个lua代码

local gun_info = {
   g_sword={rate=0.5;spd=0;dmg=1;ammo=1;};
   g_pistol={rate=0.5;spd=5;dmg=1;ammo=40;};
   g_knife={rate=0.8;spd=5;dmg=1;ammo=1;};
   g_shuriken={rate=0.3;spd=5;dmg=1;ammo=40;};
   g_bomb={rate=0.8;spd=5;dmg=1;ammo=20;};
};

我只想获得每个弹药的价值。其他属性是不需要的。

for k, v in pairs(gun_info) do
  print(k, v[1], v[2], v[3], v[4], v[5])
end

这打印出整个表格,但我只需要ammos的值

1 个答案:

答案 0 :(得分:1)

在表变量之间使用逗号而不是分号。使用分号在语法上不是错误的,但在Lua中是可选的。分号通常用于分隔用单行写的多个语句。

您可以通过索引表格的键

直接访问变量ammo
for k, v in pairs(gun_info) do
    print(k, v.ammo)
end

v.ammo和v [ammo]在Lua中并不相同。

注意:元素在遍历中的显示顺序与您定义的顺序不同,并且每次都可以生成不同的顺序。这是由于在Lua中实现表的方式。