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.
Görev
KolayDü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ündelistbooleantüründedone
İş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:
filterTasks(tasks, false)değerinipendingdeğişkeninde vefilterTasks(tasks, true)değerinifinisheddeğişkeninde saklayın#pendingdeğerini, ardından her bir bekleyen görevin başlığını ayrı bir satırda yazdırın (ipairskullanın)#finisheddeğ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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışmak
Parametreleri ve Geri Dönüş Değerlerini TiplendirmeAnonim Fonksiyonları TiplendirmeHiçbir Şey Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriDeğişken Sayıda Parametre Alan Fonksiyonlar (Variadic)Fonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar7Proje: Tiplenmiş Görev Yöneticisi
Proje: Görev YapısıGörev Ekleme Fonksiyonu2Temel Tipler
Temel Tipler: num, str, bool'any' Tipi: Kaçış Yolu'unknown' TipiNil ve İsteğe Bağlı (Optional) TiplerUygulamada Tip ÇıkarımıAçık Tip BelirteçleriÖzet: Temel Tipler Pratiği5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları3Tipli Tablolar: Diziler ve Map'ler
Tipli DizilerEleman Ekleme ve OkumaMap Tipi Nedir?Map Bildirimi ve Map'lere ErişimTablolar Üzerinde YinelemeKarma Biçimli TablolarÇok Boyutlu Tipli Dizilertable.unpack ve VarargsÖzet: Diziler ve Map'ler