Menu
Coddy logo textTech

¿Qué es una Metatabla?

Parte de la sección Lógica y flujo de control del Journey de Lua de Coddy. Lección 16 de 54.

Una metatabla es simplemente una tabla de Lua normal, pero tiene un propósito especial. Cuando adjuntas una metatabla a otra tabla (llamémosla la tabla "principal"), puedes cambiar cómo se comporta esa tabla principal cuando se realizan ciertas operaciones sobre ella.

Piénsalo de esta manera: normalmente, si intentas sumar dos tablas usando el operador +, Lua no sabe qué hacer y te dará un error. Pero con una metatabla, puedes definir qué significa la suma para tus tablas. Podrías hacer que sume los valores correspondientes, concatene sus contenidos o haga cualquier otra cosa que tenga sentido para tu programa.

Las metatablas funcionan definiendo funciones especiales llamadas metamétodos. Estos metamétodos tienen nombres específicos que comienzan con dos guiones bajos, como __add para la suma o __index para buscar claves faltantes. Cuando Lua encuentra una operación en una tabla que tiene una metatabla, comprueba si la metatabla tiene el metamétodo correspondiente y lo utiliza para determinar qué debe suceder.

Este concepto abre posibilidades como crear tipos de datos personalizados con sus propios comportamientos, implementar patrones orientados a objetos, proteger tablas de modificaciones no deseadas y mucho más. En las próximas lecciones, aprenderás cómo adjuntar metatablas a las tablas y usar metamétodos para personalizar su comportamiento.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo de control

Practica por tu cuenta: Compilador de Lua online