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