Fonksiyon: Kimliğe Göre Öğe Bulma
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 70 / 80.
Görev
KolayBir öğeyi kimliğine göre arayan bir işlev ekle.
-- Try italtındaki satırları sil.- Eşleşen
iddeğerine sahip öğeyi veyanildöndürenlocal function findItem<T>(inventory: {Item<T>}, id: number): Item<T>?yaz. -- Try italtınafindItem(weapons, 99)yazdır, ardındanfindItem(weapons, 2)sonucunulocal foundiçinde sakla veif found theniçindefound.namedeğerini yazdır.
Run Code düğmesine bas: çıktı olarak nil ve Fire Axe görünür.
Kendin dene
-- Her envanterin ortak kullandığı öğe yapısı
type Item<T> = {
id: number,
name: string,
data: T,
}
local sword: Item<{damage: number}> = {id = 1, name = "Iron Sword", data = {damage = 25}}
local potion: Item<{heal: number}> = {id = 2, name = "Health Potion", data = {heal = 40}}
-- Bir sonraki boş id ile bir öğe oluştur, sakla ve döndür
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}>} = {}
addItem(weapons, "Iron Sword", {damage = 25})
addItem(weapons, "Fire Axe", {damage = 40})
-- Dene
print(#weapons)
print(weapons[2].name)
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ışma
Parametreleri ve Dönüş Değerlerini Tür BelirtmeAnonim Fonksiyonları Tür BelirtmeDeğer Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriBoolean Değerler için VarsayılanlarDeğişken Sayıda Parametre Alan FonksiyonlarFonksiyon Türlerini TanımlamaTekrar: Tür Belirtilmiş Fonksiyonlar7Proje: Tipli Görev Yöneticisi
Proje: Görev YapısıGörev Eklemek için Fonksiyon10Proje: Genel Envanter
Proje: Envanter ÖğesiFonksiyon: Öğeler Ekleme2Temel Türler
Number, String ve Boolean'any' Türü: Kaçış Yolu'unknown' TürüNil ve İsteğe Bağlı TürlerTür Çıkarımı UygulamadaAçık Tür Ek AçıklamalarıTekrar: Temel Türler Alıştırması5Diğ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ı3Türlenmiş Tablolar: Diziler ve Map’ler
Türlenmiş DizilerÖğe Ekleme ve OkumaMap Türü Nedir?Map’leri Tanımlama ve ErişmeTablolar Üzerinde YinelemeKarma Şekilli TablolarBir Izgarayı OkumaBir Izgara Oluşturmatable.unpackÖzet: Diziler ve Map’lerKendi başına pratik yap: Online Luau derleyicisi