Podsumowanie: funkcje generyczne
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 62 z 73.
Wyzwanie
ŚredniPołącz aliasy generyczne i funkcje generyczne w jednym programie.
Zdefiniuj alias typu generycznego o nazwie Pair z dwoma parametrami typu T i U, opisujący tabelę zawierającą:
firsttypuTsecondtypuU
Utwórz funkcję generyczną o nazwie makePair, która deklaruje T i U, przyjmuje first: T i second: U oraz zwraca je spakowane w Pair<T, U>.
Utwórz funkcję generyczną o nazwie describePair, która deklaruje T i U, przyjmuje pair: Pair<T, U> i zwraca ciąg znaków ({first}, {second}) utworzony z użyciem interpolacji ciągów znaków (typ zwracany string).
Następnie:
- utwórz
playerScoretypuPair<string, number>, wywołującmakePair("<code>Nova", 87) - utwórz
levelDonetypuPair<number, boolean>, wywołującmakePair(3, true) - wypisz
playerScore.first - wypisz
playerScore.second - wypisz
describePair(playerScore) - wypisz
describePair(levelDone) - wypisz
describePair(makePair("Luau", 2026))w jednym wierszu
Spróbuj swoich sił
-- Napisz kod tutaj
-- 1) zdefiniuj typ Pair<T, U> = {first: T, second: U}
-- 2) zdefiniuj makePair<T, U>(first: T, second: U): Pair<T, U>
-- 3) zdefiniuj describePair<T, U>(pair: Pair<T, U>): string
-- zwracając `({pair.first}, {pair.second})`
-- 4) utwórz playerScore (dokładny tekst z instrukcji, 87) oraz levelDone (3, true),
-- a następnie wypisz pięć wymaganych wierszy
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 niczego nie zwracająceParametry opcjonalneDomyślne wartości parametrówFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Typy podstawowe
Typy podstawowe: num, str, boolTyp „any”: furtka awaryjnaTyp „unknown”Typy Nil i opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenie typów podstawowych5Aliasy, 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
Tablice typowaneDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie map i dostęp do nichIterowanie po tabelachTabele o mieszanej strukturzeWielowymiarowe tablice typowanetable.unpack i varargsPodsumowanie: tablice i mapy6Typowanie kształtów tabel
Adnotacje kształtów w miejscuAliasy typów dla kształtówWłaściwości opcjonalneKształty a luźne tabeleRozszerzanie kształtówDodawanie metod do kształtówSelf i metody z dwukropkiemPodsumowanie: definiowanie kształtów tabel9Typy generyczne: pierwsze spojrzenie
Problem, który rozwiązują typy generyczneGeneryczna funkcja identycznościowaKorzystanie z funkcji generycznejTablice generyczneGeneryczne aliasy typówPodsumowanie: funkcje generycznePoćwicz samodzielnie: Kompilator Luau online