gpt4 book ai didi

loops - 在 Lua 中循环遍历数组值

转载 作者:行者123 更新时间:2023-12-04 02:49:34 26 4
gpt4 key购买 nike

我有一个变量如下

local armies = {
[1] = "ARMY_1",
[2] = "ARMY_3",
[3] = "ARMY_6",
[4] = "ARMY_7",
}

现在我想为每个值做一个 Action 。循环值的最佳方法是什么?我在互联网上找到的典型情况是:
for i, armyName in pairs(armies) do
doStuffWithArmyName(armyName)
end

我不喜欢这样,因为它会导致未使用的变量 i .以下方法可以避免这种情况,并且是我目前正在使用的方法:
for i in pairs(armies) do
doStuffWithArmyName(armies[i])
end

然而,这仍然不像我想要的那样可读和简单,因为这是迭代键,然后使用键获取值(相当强制)。我对这两种方法的另一个好处是 pairs是需要的。这里循环的值是我可以控制的,我希望它可以尽可能容易地循环。

如果我只关心这些值,有没有更好的方法来做这样的循环?有没有办法解决我列出的问题?

我正在使用 Lua 5.0(并且对这种语言很陌生)

最佳答案

遍历数组的惯用方法是:

for _, armyName in ipairs(armies) do
doStuffWithArmyName(armyName)
end

注意:
  • 使用ipairs超过 pairs对于数组
  • 如果 key 不是您感兴趣的,请使用 _作为占位符。


  • 如果出于某种原因, _占位符仍然与您有关,请创建自己的迭代器。 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

    关于loops - 在 Lua 中循环遍历数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39991717/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com