Menu
Coddy logo textTech

Formas frente a tablas no estructuradas

Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 40 de 73.

Ahora tienes dos formas de trabajar con tablas de registros: la forma flexible que siempre has usado en Lua y las formas declaradas. Vale la pena detenerse para ver qué aporta cada una.

Una tabla flexible acepta cualquier cosa. Esa flexibilidad tiene un precio: escribe mal un campo (user.nmae) y obtienes silenciosamente nil; olvida un campo y el error aparece mucho más adelante, en tiempo de ejecución, en el código que toque primero el hueco:

local user = {name = "Ana", age = 20}
print(user.nmae) -- tabla laxa: imprime nil silenciosamente

Declara una forma y esos errores pasan del tiempo de ejecución al momento de editar. El comprobador señala el error tipográfico en cuanto lo escribes, tu editor puede autocompletar los nombres de los campos y la declaración type también sirve como documentación de lo que contiene la tabla:

type User = {name: string, age: number}
local user: User = {name = "Ana", age = 20}
print(user.nmae) -- ✗ error de tipo: clave 'nmae' no encontrada en User

Si vienes de TypeScript, ten en cuenta que Luau no tiene la palabra clave interface: type gestiona todas las formas. Tampoco existe la «fusión de declaraciones»: declarar dos tipos con el mismo nombre en el mismo ámbito es un error, por lo que cada forma tiene exactamente una definición.

Las formas de Luau son estructurales: cualquier tabla con los campos correctos de los tipos correctos coincide, sin importar dónde ni cómo se haya creado. Y las tablas flexibles siguen teniendo su lugar: los scripts rápidos y los datos verdaderamente dinámicos no necesitan una forma declarada. Sin embargo, para cualquier cosa que se pase entre funciones, una forma detecta los errores cuando todavía es barato corregirlos.

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 Introducción a Luau

Practica por tu cuenta: Compilador de Lua online