Adnotacje kształtów w miejscu
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 37 z 73.
W Lua od dawna używasz tabel jako rekordów: local user = {name = "Ana", age = 20}. Nic nie powstrzymuje cię przed błędnym zapisaniem pola, pominięciem go albo zapisaniem ciągu znaków tam, gdzie powinna być liczba. Dowiadujesz się o tym dopiero podczas działania kodu.
Luau pozwala opisać kształt 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. Kształt jest bardziej precyzyjny. Wymienia każde pole osobno i określa jego własny typ.
Po zadeklarowaniu kształtu sprawdzanie typów weryfikuje zgodność tabeli z nim podczas edycji. Brakujące pole lub nieprawidłowy typ wartości zostanie wskazany, zanim kod w ogóle zostanie uruchomiony:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ błąd typu: string nie jest liczbą
}Jak zawsze, adnotacja nie wpływa na działanie programu: tabela pozostaje zwykłą tabelą Lua. Kształty inline świetnie nadają się do jednorazowych struktur, których nie planujesz używać ponownie; w następnej lekcji nadasz kształtom nazwę.
Wyzwanie
ŁatwyUtwórz zmienną o nazwie student z wbudowaną adnotacją kształtu deklarującą:
nametypustringstudentIdtypunumberisEnrolledtypuboolean
Zainicjuj ją imieniem "Sarah Johnson", studentId 12345 i isEnrolled true.
Utwórz drugą zmienną o nazwie course z wbudowaną adnotacją kształtu deklarującą:
titletypustringcreditstypunumberinstructortypustring
Zainicjuj ją tytułem "Introduction to Luau", liczbą punktów 3 i prowadzącym "Dr. Smith".
Wypisz, każdy element w osobnym wierszu:
- imię i nazwisko studenta
- identyfikator studenta
- tytuł kursu
- liczbę punktów
Spróbuj swoich sił
-- Napisz kod tutaj
-- 1) zadeklaruj student z adnotacją typu strukturalnego bezpośrednio w deklaracji
-- 2) zadeklaruj course z adnotacją typu strukturalnego bezpośrednio w deklaracji
-- 3) wypisz cztery wymagane pola
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
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 tabelPoćwicz samodzielnie: Kompilator Luau online