Menu
Coddy logo textTech

Fonksiyon: Görevleri Duruma Göre Listeleme

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası — ders 48 / 73.

challenge icon

Görev

Kolay

Düzenleyiciniz zaten önceki derslerden Task türünü, tasks dizisini, addTask ve completeTask işlevlerini içermektedir.

İki parametre alan filterTasks adında bir işlev oluşturun:

  • {Task} türünde list
  • boolean türünde done

İşlev, yalnızca done bayrağı parametreye eşit olan görevleri içeren {Task} türünde yeni bir dizi oluşturmalı ve döndürmelidir.

Ardından:

  1. filterTasks(tasks, false) değerini pending değişkeninde ve filterTasks(tasks, true) değerini finished değişkeninde saklayın
  2. #pending değerini, ardından her bir bekleyen görevin başlığını ayrı bir satırda yazdırın (ipairs kullanın)
  3. #finished değerini, ardından her bir tamamlanmış görevin başlığını ayrı bir satırda yazdırın

Kendin dene

-- Yöneticideki her görevin uyması gereken şekil
type Task = {
    id: number,
    title: string,
    done: boolean,
}

-- Görev listesi: Task şekillerinden oluşan tipli bir dizi
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},
}

-- Sonraki boş id ile tipli bir görev oluştur ve ekle
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

-- Verilen id'ye sahip görevi tamamlandı olarak işaretle; başarıyı bildir
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

-- Kodunu buraya yaz
-- 1) filterTasks(list: {Task}, done: boolean): {Task} tanımla
-- 2) `pending` (done == false) ve `finished` (done == true) oluştur
-- 3) #pending ve bekleyen başlıkları, ardından #finished ve
--    tamamlanmış başlıkları yazdır

Luau'ya Giriş bölümündeki tüm dersler