J'ai une valeur armyName
et j'ai besoin d'une fonction qui vérifie si c'est l'une des 8 valeurs. Comme je suis nouveau à Lua, je cherche la meilleure façon de faire ce genre de test.Déterminer si la variable est l'une des plusieurs valeurs dans Lua
Cela fonctionne:
local function isPlayerArmyName(armyName)
return armyName == "ARMY_1"
or armyName == "ARMY_2"
or armyName == "ARMY_3"
or armyName == "ARMY_4"
or armyName == "ARMY_5"
or armyName == "ARMY_6"
or armyName == "ARMY_7"
or armyName == "ARMY_8"
end
Cela fonctionne aussi:
local function isPlayerArmyName(armyName)
local names = {
["ARMY_1"] = true, ["ARMY_2"] = true, ["ARMY_3"] = true, ["ARMY_4"] = true,
["ARMY_5"] = true, ["ARMY_6"] = true, ["ARMY_7"] = true, ["ARMY_8"] = true,
}
return names[armyName] or false
end
Ils sont à la fois plutôt ridicule par rapport à ce code PHP:
return in_array($armyName, [ "ARMY_1", "ARMY_2", "ARMY_3", ..., "ARMY_8" ])
Y at-il une meilleure façon de faire une telle vérification que les extraits de code Lua fournis? Et sinon, que préfèrerait le programmeur Lua typique? le premier ou le second? J'utilise Lua 5.0.
Utilisez une fermeture avec la deuxième méthode. – hjpotter92
Je ne comprends pas votre suggestion –