Menu
CoddyTech

Typowanie funkcji anonimowych

Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 24 z 80.

W Lua funkcje są wartościami: zapisujesz je w zmiennych i przekazujesz dalej: local f = function(x) return x * 2 end. Te funkcje anonimowe (wyrażenia funkcyjne) przyjmują adnotacje typów dokładnie tak samo jak funkcje nazwane:

local double = function(x: number): number
    return x * 2
end

local shout = function(text: string): string
    return string.upper(text) .. "!"
end

Parametry otrzymują zapis name: type w nawiasach, a typ zwracany znajduje się po nawiasie zamykającym: jedyna różnica w porównaniu z funkcją nazwaną polega na tym, że słowo kluczowe function nie ma nazwy, a całe wyrażenie jest przypisywane do zmiennej.

Jeśli znasz JavaScript lub TypeScript, pamiętaj, że Luau nie ma funkcji strzałkowych. Nie ma składni =>. Każde wyrażenie funkcyjne zapisuje się jako function ... end, niezależnie od tego, czy jest długie, czy krótkie.

Po przypisaniu wywołujesz funkcję za pomocą zmiennej, tak jak każdą inną funkcję: double(21) zwraca 42, a sprawdzarka weryfikuje każde wywołanie zgodnie z zapisanymi przez Ciebie adnotacjami.

challenge icon

Wyzwanie

Łatwy

Przechowuj funkcje typowane w zmiennych lokalnych.

  1. Przepisz subtract jako local subtract = function(a: number, b: number): number, zachowując jej ciało.
  2. Dodaj local isPositive = function(num: number): boolean, która zwraca num > 0.
  3. Wyświetl subtract(10, 3) i isPositive(-5).

Naciśnij Uruchom kod: dane wyjściowe pokazują 7 i false.

Spróbuj swoich sił

-- Przepisz to jako funkcję anonimową przypisaną do zmiennej lokalnej
function subtract(a: number, b: number): number
    return a - b
end

Wszystkie lekcje w sekcji Wprowadzenie do Luau

Poćwicz samodzielnie: Kompilator Luau online