Lua 如何循环嵌套表并获取特定属性?

我是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

这会打印出整个表,但我只需要弹药的值。

点赞
用户3572445
用户3572445

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

您可以通过索引表的键直接访问变量 ammo

for k, v in pairs(gun_info) do
    print(k, v.ammo)
end

在 Lua 中,v.ammo 和 v[ammo] 是不同的。

注意:遍历元素的顺序将不会与您定义的顺序相同,并且每次可能会产生不同的顺序。这是由于 Lua 中表的实现方式导致的。

2018-04-17 17:06:43