unpack(4)
provoquera une erreur
tentative d'obtenir la longueur d'une valeur numérique
unpack("hello world")
retournera
néant néant néant néant néant néant néant néant néant néant néant
si ce n'est pas très utile aussi bien.
Le déballage est prévu pour le déballage des tables. Si vous souhaitez travailler avec une version récente de Lua vous remarquerez qu'il est maintenant table.unpack()
Autres problèmes avec votre code:
Lua ne prend pas en charge les fonctions de surcharge. Les fonctions sont des variables.
Vous écrivez:
function b(x, z)
end
function b(x, y, z)
end
La première définition est perdue une fois que la deuxième définition est traitée. Si vous utilisez une autre notation, elle sera plus claire. Votre code est équivalent à
b = function (x, z)
end
b = function (x, y, z)
end
et je pense que vous conviendrez que, après
b = 3
b = 4
b
sera 4. Le même principe ...
a-t-il traversé votre esprit à vous pourriez simplement exécuter le code et voir ce qui se passe au lieu de demander ce qui se passe? une meilleure façon d'apprendre – Piglet
'b (décompresser (i), j)' est un mauvais exemple: le résultat de 'unpack (i)' sera ajusté à une valeur. –
La façon la plus simple de retourner une table n'est-elle pas la meilleure? Donc, s'il y a une valeur à renvoyer, faites comme 'return {1}," foo "' – tonypdmtr