Fonksiyon: ID ile Öğe Bul
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası — ders 65 / 73.
Görev
KolayProjenizi önceki dersten genişletin (Item<T>, addItem ve iki eşyasıyla birlikte weapons envanterini tutun).
- Envanter üzerinde döngü kuran ve
iddeğeri eşleşen eşyayı döndüren, eşleşen yoksanildöndüren genel birfindItem<T>(inventory: {Item<T>}, id: number): Item<T>?fonksiyonu yazın. findItem(weapons, 2)fonksiyonunu çağırın. Bir eşya döndürürse, eşyanınnamedeğerini ve ardındandata.damagedeğerini basın (iki satır); aksi takdirdeItem not foundyazdırın.findItem(weapons, 99)fonksiyonunu çağırın. Bir eşya döndürürse, eşyanınnamedeğerini basın; aksi takdirdeItem not foundyazdırın.
Kendin dene
-- Önceki derslerden
type Item<T> = {
id: number,
name: string,
data: T,
}
local function addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
local item: Item<T> = {
id = #inventory + 1,
name = name,
data = data,
}
table.insert(inventory, item)
return item
end
local weapons: {Item<{damage: number}>} = {}
local sword = addItem(weapons, "Iron Sword", {damage = 25})
local axe = addItem(weapons, "Fire Axe", {damage = 40})
-- Kodu buraya yazın
-- 1) findItem<T>(inventory: {Item<T>}, id: number): Item<T>?
-- 2) look up ids 2 and 99, printing details or "Item not found"
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 Fonksiyonu10Proje: Jenerik Envanter
Proje: Envanter ÖğesiFonksiyon: Öğe Ekle2Temel 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