loops – 在Lua中循环遍历数组值
发布时间:2020-12-15 00:16:57 所属栏目:大数据 来源:网络整理
导读:我有一个变量如下 local armies = { [1] = "ARMY_1",[2] = "ARMY_3",[3] = "ARMY_6",[4] = "ARMY_7",} 现在我想为每个值做一个动作.循环这些值的最佳方法是什么?我在互联网上找到的典型事情是这样的: for i,armyName in pairs(armies) do doStuffWithArmyN
我有一个变量如下
local armies = { [1] = "ARMY_1",[2] = "ARMY_3",[3] = "ARMY_6",[4] = "ARMY_7",} 现在我想为每个值做一个动作.循环这些值的最佳方法是什么?我在互联网上找到的典型事情是这样的: for i,armyName in pairs(armies) do doStuffWithArmyName(armyName) end 我不喜欢它,因为它导致一个未使用的变量i.以下方法避免了这种情况,并且是我目前正在使用的方法: for i in pairs(armies) do doStuffWithArmyName(armies[i]) end 然而,这仍然不像我想的那样可读和简单,因为这是迭代密钥然后使用密钥获取值(相当必要).我对这两种方法的另一个好处是需要配对.在这里循环的值是我可以控制的值,我希望它可以尽可能容易地循环. 如果我只关心这些值,有没有更好的方法来做这样的循环?有没有办法解决我列出的问题? 我正在使用Lua 5.0(对语言来说很新) 解决方法
迭代数组的惯用方法是:
for _,armyName in ipairs(armies) do doStuffWithArmyName(armyName) end 注意: >对阵列使用ipairs成对 如果由于某种原因,_占位符仍然关注您,请创建自己的迭代器. Lua中的编程提供了一个例子: function values(t) local i = 0 return function() i = i + 1; return t[i] end end 用法: for v in values(armies) do print(v) end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |