Typy sumy
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 33 z 80.
Czasami jeden typ nie wystarcza. Identyfikator użytkownika może przyjść jako "user123" lub jako 42. W czystym Lua pozostaje tylko mieć nadzieję na najlepsze; Luau daje ci typy sumy: kreska pionowa | oznacza „lub”:
local userId: number | string
userId = "user123" -- ✓ ciąg znaków jest dozwolony
userId = 42 -- ✓ liczba jest dozwolona
userId = true -- ✗ błąd typu: boolean nie należy do uniiZmienna może przechowywać dowolny element typu sumy i tylko te elementy. To kluczowa różnica w porównaniu z any: typ sumy pozostaje restrykcyjny co do tego, co jest dozwolone, a jednocześnie zapewnia potrzebną ci elastyczność.
Typy sumy są szczególnie przydatne w przypadku parametrów funkcji, które akceptują różne formaty danych wejściowych:
function printId(id: number | string): ()
print(id)
end
printId(42) -- działa z liczbą
printId("user123") -- działa z ciągiem znakówZnasz już string?. To był twój pierwszy typ sumy! To po prostu skrócony zapis string | nil. W następnej lekcji dowiesz się, jak bezpiecznie pracować z wartością typu sumy, gdy już ją masz.
Wyzwanie
ŁatwyAkceptuj wartość, która jest liczbą lub ciągiem znaków.
- Napisz
local function printId(id: number | string): (), która wypisujeid. - Zadeklaruj
local status: string | number = "active". - Wywołaj
printId(7)iprintId("player7"), następnie ustawstatus = 200i wypisz tę wartość.
Naciśnij Uruchom kod: w wynikach pojawią się 7, player7 i 200.
Spróbuj swoich sił
-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) wywołaj printId(7) i printId("player7"), ustaw status na 200 i wypisz go
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