Menu
Coddy logo textTech

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) .. "!"
end

Parametreler 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.

challenge icon

Görev

Kolay

Bu 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
end

Yani: 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: string alır, "Message: [text]" dizesini döndürür (dönüş türü string)
  • isPositive: num: number alır, sayı 0'dan büyükse true, aksi takdirde false döndürür (dönüş türü boolean)

Her birini ayrı bir satırda çağırıp yazdırın:

  1. subtract(10, 3)
  2. createMessage("Hello World")
  3. isPositive(-5)
  4. 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
quiz iconKendini test et

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

Kendi başına pratik yap: Online Lua derleyicisi