Menu
Coddy logo textTech

Qu’est-ce qu’une métatable ?

Fait partie de la section Logique et flux du Journey Lua de Coddy. Leçon 16 sur 54.

Une métatable est simplement une table Lua ordinaire, mais elle a un objectif particulier. Lorsque vous attachez une métatable à une autre table (appelons-la la table « principale »), vous pouvez modifier le comportement de cette table principale lorsque certaines opérations sont effectuées sur elle.

Voyez les choses ainsi : normalement, si vous essayez d’additionner deux tables à l’aide de l’opérateur +, Lua ne sait pas quoi faire et renvoie une erreur. Mais avec une métatable, vous pouvez définir ce que signifie l’addition pour vos tables. Vous pouvez lui faire additionner les valeurs correspondantes, concaténer leur contenu ou effectuer toute autre opération pertinente pour votre programme.

Les métatables fonctionnent en définissant des fonctions spéciales appelées métaméthodes. Ces métaméthodes ont des noms spécifiques qui commencent par deux traits de soulignement, comme __add pour l’addition ou __index pour rechercher des clés manquantes. Lorsque Lua rencontre une opération sur une table qui possède une métatable, il vérifie si la métatable possède la métaméthode correspondante et l’utilise pour déterminer ce qui doit se produire.

Ce concept ouvre des possibilités telles que la création de types de données personnalisés avec leurs propres comportements, la mise en œuvre de modèles orientés objet, la protection des tables contre les modifications indésirables, et bien plus encore. Dans les prochaines leçons, tu apprendras à associer des métatables aux tables et à utiliser des métaméthodes pour personnaliser leur comportement.

Essayez vous-même

Cette leçon ne comprend pas de défi de code.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et flux

Entraînez-vous par vous-même : Compilateur Lua en ligne