Anonim Fonksiyonları Tiplendirme
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 23 / 73.
Lua'da fonksiyonlar değerlerdir: onları değişkenlerde sakladınız ve etrafta geçirdiniz: local f = function(x) return x * 2 end. Bu anonim fonksiyonlar (fonksiyon ifadeleri), adlandırılmış fonksiyonlar gibi tür açıklamalarını da alır:
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endParametreler parantezlerin içinde name: type biçimini alır ve dönüş türü kapanış parantezinden sonra gelir: adlandırılmış bir fonksiyondan tek farkı, function anahtar sözcüğünün bir ada sahip olmaması ve ifadenin tamamının bir değişkene atanmasıdır.
JavaScript veya TypeScript gördüyseniz Luau'da ok fonksiyonları olmadığını unutmayın. => söz dizimi yoktur. Her fonksiyon ifadesi uzun veya kısa biçimde function ... end kullanılarak yazılır.
Atandıktan sonra onu diğer tüm fonksiyonlar gibi değişken üzerinden çağırırsınız: double(21), 42 döndürür ve denetleyici her çağrıyı yazdığınız açıklamalara göre doğrular.
Görev
KolayBu adlandırılmış işlevi, tüm tür açıklamalarını koruyarak yerel bir değişkende saklanan anonim bir işleve dönüştürün:
function subtract(a: number, b: number): number
return a - b
endYani: aynı parametre ve dönüş türleriyle local subtract = function(...) ... end oluşturun.
Ardından iki tür belirtilmiş anonim işlev daha oluşturun:
createMessage:text: stringalır,"Message: [text]"dizesini döndürür (dönüş türüstring)isPositive:num: numberalır, sayı 0'dan büyüksetrue, aksi takdirdefalsedöndürür (dönüş türüboolean)
Her birini ayrı bir satırda çağırıp yazdırın:
subtract(10, 3)createMessage("Hello World")isPositive(-5)isPositive(8)
Kendin dene
-- Buraya kod yazın
-- local subtract = function(a: number, b: number): number ... end
-- local createMessage = function(text: string): string ... end
-- local isPositive = function(num: number): boolean ... end
-- sonra dört sonucu yazdırın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
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ş Fonksiyonlar2Temel 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'lerKendi başına pratik yap: Online Lua derleyicisi