Я переменный следующийLooping над значениями массива в Lua
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
Однако это еще не читаемыми и просто, как хотелось бы, так как это итерация над клавишами, а затем получить значение с помощью клавиши (весьма императивно). Другое преимущество, которое у меня есть с обоими подходами, заключается в том, что требуется pairs
. Значение, зацикливаемое здесь, - это тот, который я контролирую, и я бы предпочел, чтобы его можно было зациклировать как можно проще.
Есть ли лучший способ сделать такой цикл, если я только забочусь о значениях? Есть ли способ решить перечисленные проблемы?
Я использую Lua 5.0 (и я совершенно новой для языка)
Независимо от того, что вы делаете (даже с помощью пользовательского итератора) индекс должен быть сохранен * где *, а не потому, что ** ВЫ ** нуждаетесь в этом, но потому, что итератор делает. – warspyking