Tabele o mieszanej strukturze
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 18 z 80.
Tablice przechowują wiele wartości jednego typu; mapy przechowują jeden typ klucza i jeden typ wartości. Jednak najczęściej używane przez Ciebie tabele Lua łączą różne typy w nazwanych polach: gracza z tekstowym imieniem, wynikiem liczbowym i flagą logiczną. Luau opisuje ich typy za pomocą kształtu: typu tabeli, który wymienia każde pole i jego własny typ.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)Słowo kluczowe type tworzy alias typu: wielokrotnie używaną nazwę kształtu. Istnieje on tylko na potrzeby weryfikatora: nie jest tworzona żadna wartość czasu wykonania o nazwie Point. Każde pole może mieć inny typ:
type Player = {name: string, score: number, active: boolean}
local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)Po zadeklarowaniu kształtu weryfikator wie, że player.score jest liczbą, i wykrywa błędy na wczesnym etapie: literówkę, taką jak player.scroe (takie pole nie istnieje), albo przypisanie player.score = "high" (niewłaściwy typ). To dopiero pierwszy przedsmak: w późniejszym rozdziale dokładniej omówimy kształty, pola opcjonalne i metody.
Wyzwanie
ŁatwyOpisz gracza za pomocą typu kształtu.
- Zapisz
type Player = {name: string, score: number, active: boolean}. - Utwórz
local player: Player = {name = "Kai", score = 900, active = false}. - Wypisz
player.active, a następnie`{player.name} has {player.score} points`.
Naciśnij Uruchom kod: w wyniku pojawią się false i Kai has 900 points.
Spróbuj swoich sił
-- 1) type Player = {...}
-- 2) local player: Player = {...}
-- 3) wypisz wartość flagi active, a następnie wiersz podsumowania
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