Adnotacje kształtów w miejscu
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 39 z 80.
W Lua od dawna używasz tabel jako rekordów: local user = {name = "Ana", age = 20}. Nic nie stoi na przeszkodzie, by błędnie wpisać nazwę pola, o którymś zapomnieć albo przechować ciąg znaków tam, gdzie powinna być liczba. Dowiadujesz się o tym dopiero podczas wykonywania kodu.
Luau pozwala opisać strukturę takiej tabeli bezpośrednio w deklaracji, wymieniając każde pole i jego typ w nawiasach klamrowych:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Porównaj to ze znanymi Ci już typami tabel: {number} opisuje tablicę, a {[string]: number} opisuje mapę z dowolnymi kluczami typu string. Struktura jest bardziej precyzyjna. Nazywa każde pole osobno i określa jego własny typ.
Gdy zadeklarujesz strukturę, moduł sprawdzający typy weryfikuje zgodność tabeli z jej opisem podczas edycji. Brakujące pole lub nieprawidłowy typ wartości zostanie wykryty, zanim kod zostanie uruchomiony:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ błąd typu: string nie jest liczbą
}Jak zawsze, adnotacja nie zmienia działania programu podczas wykonywania: tabela pozostaje zwykłą tabelą Lua. Struktury zapisane bezpośrednio w miejscu użycia świetnie sprawdzają się w przypadku jednorazowych struktur, których nie planujesz ponownie wykorzystywać; w następnej lekcji nadasz strukturom nazwę.
Wyzwanie
ŁatwyOpisz rekord ucznia bezpośrednio w jego deklaracji.
- Zadeklaruj
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}. - Wyświetl
student.name, a następniestudent.studentId.
Naciśnij Uruchom kod: wynik pokazuje Sarah Johnson i 12345.
Spróbuj swoich sił
-- 1) zadeklaruj student z adnotacją określającą strukturę w tej samej linii
-- 2) wypisz jego imię, a następnie jego studentId
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 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 tabelPoćwicz samodzielnie: Kompilator Luau online