Función: Listar tareas por estado
Parte de la sección Introducción a Luau del Journey de Lua de Coddy. Lección 50 de 80.
Desafío
FácilAñade una función que seleccione tareas según su estado.
- Elimina las líneas debajo de
-- Try it. - Escribe
local function filterTasks(list: {Task}, done: boolean): {Task}que devuelva una lista nueva de las tareas cuyo valor dedonesea igual al parámetro. - Debajo de
-- Try it, guardafilterTasks(tasks, false)enlocal pendingy después imprime#pendingypending[2].title.
Pulsa Run Code: la salida muestra 2 y Build a task manager.
Pruébalo tú mismo
-- La estructura que sigue cada tarea del gestor
type Task = {
id: number,
title: string,
done: boolean,
}
local tasks: {Task} = {
{id = 1, title = "Learn Luau types", done = false},
{id = 2, title = "Build a task manager", done = false},
{id = 3, title = "Write tests", done = true},
}
-- Crea una tarea con el siguiente id disponible y añádela a la lista
local function addTask(list: {Task}, title: string): Task
local newTask: Task = {id = #list + 1, title = title, done = false}
table.insert(list, newTask)
return newTask
end
-- Marca como completada la tarea con este id; indica si se encontró alguna
local function completeTask(list: {Task}, id: number): boolean
for _, t in ipairs(list) do
if t.id == id then
t.done = true
return true
end
end
return false
end
-- Pruébalo
print(completeTask(tasks, 1))
print(tasks[1].done)
print(completeTask(tasks, 99))
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