Fonksiyon: Görev Özetini Yazdırma
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası — ders 49 / 73.
Görev
KolayDüzenleyiciniz zaten önceki derslerden Task türünü, tasks dizisini, addTask, completeTask ve filterTasks fonksiyonlarını içermektedir.
{Task} türünde list adında bir parametre alan, hiçbir şey döndürmeyen (dönüş türü ()) ve tam olarak şu formatta tek bir satır yazdıran printSummary adında bir fonksiyon oluşturun:
{doneCount}/{total} tasks doneburada total değeri #list ve doneCount ise done == true olan görev sayısıdır (bir döngü ile sayın).
Ardından tüm araç setini şu sırayla çalıştırın:
printSummary(tasks)fonksiyonunu çağırıncompleteTask(tasks, 2)fonksiyonunu çağırınprintSummary(tasks)fonksiyonunu çağırınaddTask(tasks, "Take a break")fonksiyonunu çağırınprintSummary(tasks)fonksiyonunu çağı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
-- done bayrağı eşleşen görevleri yeni bir {Task} içine topla
local function filterTasks(list: {Task}, done: boolean): {Task}
local result: {Task} = {}
for _, t in ipairs(list) do
if t.done == done then
table.insert(result, t)
end
end
return result
end
-- Kodu buraya yaz
-- 1) printSummary(list: {Task}): () tanımlayın, şunu yazdıran
-- `{doneCount}/{total} tasks done`
-- 2) printSummary'yi çağırın, görev 2'yi tamamlayın, tekrar çağırın,
-- "Take a break" ekleyin, son bir kez çağırın
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