Tipado de funciones anónimas
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 24 de 80.
En Lua, las funciones son valores: las has almacenado en variables y las has pasado de un lado a otro: local f = function(x) return x * 2 end. Estas funciones anónimas (expresiones de función) llevan anotaciones de tipo igual que las funciones con nombre:
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endLos parámetros llevan name: type entre paréntesis, y el tipo de retorno va después del paréntesis de cierre: la única diferencia respecto a una función con nombre es que la palabra clave function no tiene nombre y que toda la expresión se asigna a una variable.
Si conoces JavaScript o TypeScript, ten en cuenta que Luau no tiene funciones flecha. No existe la sintaxis =>. Todas las expresiones de función se escriben con function ... end, sean largas o cortas.
Una vez asignada, la llamas a través de la variable como a cualquier función: double(21) devuelve 42, y el comprobador verifica cada llamada según las anotaciones que escribiste.
Desafío
FácilGuarda funciones tipadas en variables locales.
- Reescribe
subtractcomolocal subtract = function(a: number, b: number): number, conservando su cuerpo. - Añade
local isPositive = function(num: number): booleanque devuelvanum > 0. - Imprime
subtract(10, 3)eisPositive(-5).
Pulsa Run Code: la salida muestra 7 y false.
Pruébalo tú mismo
-- Reescribe esto como una función anónima almacenada en una variable local
function subtract(a: number, b: number): number
return a - b
end
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 Luau4Trabajar con funciones
Tipado de parámetros y valores de retornoTipado de funciones anónimasFunciones que no devuelven nadaParámetros opcionalesValores predeterminados de parámetrosValores predeterminados para booleanosFunciones variádicasDefinir tipos de funcionesRepaso: funciones tipadas7Proyecto: Gestor de tareas tipado
Proyecto: La estructura de una tareaFunción para añadir una tarea2Tipos fundamentales
Número, cadena y booleanoEl tipo 'any': una salida de emergenciaEl tipo 'unknown'Tipos nulos y opcionalesLa inferencia de tipos en acciónAnotaciones de tipo explícitasRepaso: práctica de tipos fundamentales5Alias, 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 mapas
Arrays tipadosAgregar y leer elementos¿Qué es un tipo mapa?Declarar y acceder a mapasRecorrer tablasTablas de formas mixtasLeer una cuadrículaConstruir una cuadrículatable.unpackRepaso: arrays y mapasPractica por tu cuenta: Compilador de Luau online