Menu
Coddy logo textTech

Función para cambiar el estado de la tarea

Parte de la sección Introducción a Luau del Journey de Lua de Coddy — lección 47 de 73.

challenge icon

Desafío

Fácil

Tu editor ya contiene el tipo Task, el array tasks y addTask de las lecciones anteriores.

Crea una función llamada completeTask que reciba dos parámetros:

  • list de tipo {Task}
  • id de tipo number

La función debe:

  • iterar sobre list con ipairs buscando una tarea cuyo id coincida
  • si la encuentra, cambiar el done de esa tarea a true y devolver true
  • si ninguna tarea coincide, devolver false (tipo de retorno boolean)

Después imprime, cada uno en su propia línea:

  1. el indicador done de la primera tarea (antes)
  2. el resultado de completeTask(tasks, 1)
  3. el indicador done de la primera tarea (después)
  4. el resultado de completeTask(tasks, 99)

Pruébalo tú mismo

-- La forma que debe seguir cada tarea en el gestor
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- La lista de tareas: un array tipado de formas Task
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},
}

-- Construye una tarea tipada con el siguiente id libre e insértala
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

-- Escribe el código aquí
-- 1) define completeTask(list: {Task}, id: number): boolean
-- 2) imprime tasks[1].done, completeTask(tasks, 1), tasks[1].done,
--    y completeTask(tasks, 99)

Todas las lecciones de Introducción a Luau