Pourquoi utiliser la fonction pairs() si vous ne voulez pas les paires clé/valeur de la table que vous énumérez ?
par exemple, c'est encore plus court à taper :
local t = {"asdf", "sdfg", "dfgh"}
for i=1, #t do
print(t[i])
end
Sinon, j'ai toujours fait ça :
local t = {"asdf", "sdfg", "dfgh"}
for _,v in pairs(t) do
print(v)
end
edit : pour votre scénario, où vous voulez énumérer seulement les valeurs dans une table avec des clés non numériques, probablement la chose la plus claire que vous pourriez faire serait d'écrire votre propre fonction d'itérateur de table comme ceci :
local t = {["asdf"] = 1, ["sdfg"] = 2, ["dfgh"] = 3}
function values(tbl)
local key = nil
return function()
key = next(tbl, key)
return tbl[key]
end
end
for value in values(t) do
print(value)
end
alors, il est très explicite que vous ne parcourez que les valeurs de la table t. Comme pairs(), il n'est pas garanti de parcourir dans l'ordre puisqu'il utilise next().