Funkcja: dodawanie elementów
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 64 z 73.
Wyzwanie
ŁatwyRozbuduj projekt z poprzedniej lekcji (zachowaj typ Item<T>).
- Napisz funkcję generyczną
addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>, która tworzy element zid = #inventory + 1, wstawia go doinventoryza pomocątable.inserti zwraca go. - Utwórz pustą typowaną tablicę
weaponstypu{Item<{damage: number}>}. - Użyj
addItem, aby dodać"Iron Sword"z{damage = 25}, zapisując wynik wsword. - Użyj
addItem, aby dodać"Fire Axe"z{damage = 40}, zapisując wynik waxe.
Następnie wypisz, każdą wartość w osobnym wierszu:
#weaponssword.idsword.nameaxe.idweapons[2].data.damage
Spróbuj swoich sił
-- The generic item shape every inventory will share
type Item<T> = {
id: number,
name: string,
data: T,
}
-- A weapon item: T is filled in with {damage: number}
local sword: Item<{damage: number}> = {
id = 1,
name = "Iron Sword",
data = {damage = 25},
}
-- A potion item: same shape, different data type
local potion: Item<{heal: number}> = {
id = 2,
name = "Health Potion",
data = {heal = 40},
}
print(sword.id)
print(sword.name)
print(sword.data.damage)
print(potion.id)
print(potion.name)
print(potion.data.heal)
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 typami7Projekt: Menedżer zadań z typami
Projekt: Struktura zadaniaFunkcja dodająca zadanie10Projekt: generyczny inwentarz
Projekt: element inwentarzaFunkcja: dodawanie elementów2Typy 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 mapyPoćwicz samodzielnie: Kompilator Luau online