Anotaciones de forma en línea
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 37 de 73.
En Lua has estado usando tablas como registros durante mucho tiempo: local user = {name = "Ana", age = 20}. Nada te impide escribir mal un campo, olvidar uno o almacenar una cadena donde debería ir un número. Solo te enteras cuando se ejecuta el código.
Luau te permite describir la forma de una tabla de este tipo directamente en la declaración, enumerando cada campo y su tipo entre llaves:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compara esto con los tipos de tabla que ya conoces: {number} describe un arreglo y {[string]: number} describe un mapa con cualquier clave de cadena. Una forma es más precisa. Nombra cada campo individualmente y asigna a cada campo su propio tipo.
Una vez declarada la forma, el comprobador de tipos verifica la tabla según ella mientras editas. Un campo faltante o un tipo de valor incorrecto se señala antes de que el código llegue a ejecutarse:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ error de tipo: string no es un number
}Como siempre, la anotación no añade ningún comportamiento en tiempo de ejecución: la tabla es una tabla Lua normal. Las formas en línea son perfectas para estructuras puntuales que no planeas reutilizar; en la siguiente lección darás un nombre a las formas.
Desafío
FácilCrea una variable llamada student con una anotación de forma inline que declare:
namede tipostringstudentIdde tiponumberisEnrolledde tipoboolean
Inicialízala con name "Sarah Johnson", studentId 12345 e isEnrolled true.
Crea una segunda variable llamada course con una anotación de forma inline que declare:
titlede tipostringcreditsde tiponumberinstructorde tipostring
Inicialízala con title "Introduction to Luau", credits 3 e instructor "Dr. Smith".
Imprime, cada uno en su propia línea:
- el name del estudiante
- el ID del estudiante
- el title del curso
- el número de credits
Pruébalo tú mismo
-- Escribe código aquí
-- 1) declara student con una anotación de forma en línea
-- 2) declara course con una anotación de forma en línea
-- 3) imprime los cuatro campos solicitados
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
1Primeros pasos con Luau
¿Qué es Luau?¿Por qué usar Luau?Tu primer código en LuauComprobación de tipos y modos de errorRecapitulacion: Introducción a Luau4Trabajando con Funciones
Tipado de Parámetros y Valores de RetornoTipado de Funciones AnónimasFunciones que no Retornan NadaParámetros OpcionalesValores por Defecto en ParámetrosFunciones VariádicasDefinición de Tipos de FuncionesRecapitulaciones: Funciones Tipadas2Tipos principales
Tipos básicos: num, str, boolEl tipo 'any': Vía de escapeEl tipo 'unknown'Tipos nulos y opcionalesInferencia de tipos en acciónAnotaciones explícitas de tiposResumen: Práctica de tipos principales5Alias, Uniones e Intersecciones
Alias de tipos para primitivosTipos de uniónTrabajando con tipos de uniónTipos literalesTipos de intersecciónCombinando alias de tiposResumen: Combinaciones avanzadas de tipos3Tablas tipadas: Arrays y Maps
Arrays tipadosAñadir y leer elementos¿Qué es un tipo Map?Declarar y acceder a MapsIterar tablasTablas de forma mixtaArrays tipados multidimensionalestable.unpack y VarargsRecapitulaciones: Arrays y Maps6Definición de formas de tablas
Anotaciones de forma en líneaAlias de tipos para formasPropiedades opcionalesFormas frente a tablas no estructuradasExtensión de formasAñadir métodos a las formasEl parámetro 'self' y los métodos con dos puntosRecapitulación: Definición de formas de tablasPractica por tu cuenta: Compilador de Lua online