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) .. "!"
endParametry 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.
Wyzwanie
ŁatwyPrzechowuj funkcje typowane w zmiennych lokalnych.
- Przepisz
subtractjakolocal subtract = function(a: number, b: number): number, zachowując jej ciało. - Dodaj
local isPositive = function(num: number): boolean, która zwracanum > 0. - Wyświetl
subtract(10, 3)iisPositive(-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
1Pierwsze kroki z Luau
Czym jest Luau?Dlaczego warto używać Luau?Twój pierwszy kod w LuauSprawdzanie typów i tryby błędówPodsumowanie: Wprowadzenie do Luau4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji anonimowychFunkcje niezwracające wartościParametry opcjonalneDomyślne wartości parametrówWartości domyślne dla typów BooleanFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Podstawowe typy
Number, String i BooleanTyp 'any': wyjście awaryjneTyp 'unknown'Nil i typy opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Aliasy, typy sumy i przekroju
Aliasy typów dla typów prostychTypy sumyPraca z typami sumyTypy literałoweTypy przekrojuŁączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów3Typowane tabele: tablice i mapy
Typowane tabliceDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie i uzyskiwanie dostępu do mapIterowanie po tabelachTabele o mieszanej strukturzeOdczytywanie siatkiTworzenie siatkitable.unpackPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online