J'ai récemment vu une nouvelle méthode, au moins pour moi, pour appeler des fonctions dans Lua et c'est en utilisant les accolades {}, certainement si le paramètre était une table. Prenez cette fonction comme un exemple de ce que je veux examiner:Quelle est la différence entre {} et() lors de l'appel d'une fonction?
function test(table)
for _, i in pairs(table) do
print(i);
end
end
test{"What", "is", "the", "difference?"};
En appelant la fonction test(), nous avons utilisé les accolades « {} » au lieu des accolades normales «() ».
Alors, mes questions vont, quelle est la différence entre ces deux? Quel est le meilleur en performance? Quand devrais-je en utiliser un plutôt que l'autre? Pourquoi une telle manière a-t-elle été créée alors que les accolades normales faisaient le travail?
En plus des réponses que vous avez obtenu, le test {} est. pas équivalent à test(). Test a un paramètre (table) et en passant plus d'un argument ignore silencieusement le reste, tandis que {} crée une table en tant qu'objet unique qui contient toutes les valeurs. } n'est pas la même chose que test (1,2,3). – tonypdmtr