Menu
Coddy logo textTech

태스크 상태 변경 함수

Coddy Lua 여정의 Luau 소개 섹션에 포함된 레슨 — 73개 중 47번째.

challenge icon

챌린지

쉬움

에디터에는 이전 레슨의 Task 타입, tasks 배열 및 addTask가 이미 포함되어 있습니다.

두 개의 매개변수를 받는 completeTask라는 이름의 함수를 만드세요:

  • {Task} 타입의 list
  • number 타입의 id

이 함수는 다음을 수행해야 합니다:

  • ipairs를 사용해 list를 순회하며 id가 일치하는 task를 찾습니다.
  • 찾으면 해당 task의 donetrue로 설정하고 true를 반환합니다.
  • 일치하는 task가 없으면 false를 반환합니다(반환 타입 boolean).

그런 다음 각 줄에 하나씩 출력하세요:

  1. 첫 번째 task의 done 플래그 (변경 전)
  2. completeTask(tasks, 1)의 결과
  3. 첫 번째 task의 done 플래그 (변경 후)
  4. completeTask(tasks, 99)의 결과

직접 해보기

-- 매니저의 모든 작업이 따라야 하는 형태
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- 작업 목록: 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},
}

-- 다음 사용 가능한 id로 타입이 지정된 작업을 만들어 삽입합니다
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

-- 여기에 코드를 작성하세요
-- 1) completeTask(list: {Task}, id: number): boolean을 정의하세요
-- 2) tasks[1].done, completeTask(tasks, 1), tasks[1].done을 출력하고,
--    그리고 completeTask(tasks, 99)

Luau 소개의 모든 레슨