Iterowanie po tabelach
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 17 z 80.
Wiele razy wykonywałeś pętle po tabelach Lua: Luau zachowuje dokładnie te same pętle i dodaje typy zmiennych pętli. W przypadku tablic ipairs przechodzi po elementach w kolejności, od indeksu 1 do #t, a typy można określić dla obu zmiennych:
local temps: {number} = {18, 21, 19}
for day: number, temp: number in ipairs(temps) do
print(`Day {day}: {temp}`)
endPamiętaj, że ipairs zatrzymuje się przy pierwszym brakującym indeksie: luka nil w środku kończy pętlę przedwcześnie. W przypadku dobrze utrzymanych tablic rzadko stanowi to problem, ale warto o tym wiedzieć.
W przypadku map użyj pairs, które odwiedza każdą parę klucz/wartość, w tym klucze łańcuchowe. W mapie typu {[string]: number} zmienne pętli mają naturalnie typy string i number:
local ages: {[string]: number} = {Alice = 30, Bob = 25}
for name: string, age: number in pairs(ages) do
print(`{name} is {age}`)
endJedna ważna uwaga: pairs odwiedza klucze z części haszującej w niegwarantowanej kolejności. Może się ona różnić między uruchomieniami. Gdy potrzebujesz deterministycznego wyniku (posortowanych raportów, testów), zbierz klucze do tablicy, posortuj ją za pomocą table.sort, a następnie przejdź pętlą po posortowanych kluczach, używając ipairs, i pobierz wartości z mapy.
Wyzwanie
ŁatwyWyświetl temperatury z tygodnia i ich sumę.
- Zadeklaruj
local temps: {number} = {12, 15, 11, 14}orazlocal total = 0. - Użyj pętli
for day: number, temp: number in ipairs(temps) do, wyświetl`Day {day}: {temp}`i dodajtempdototal. - Po pętli wyświetl
total.
Naciśnij Uruchom kod: wynik pokazuje Day 1: 12 do Day 4: 14, a następnie 52.
Spróbuj swoich sił
-- 1) zadeklaruj temps: {number} oraz total = 0
-- 2) wykonaj pętlę z typowanymi day i temp, wypisz każdy day, dodaj do total
-- 3) wypisz total
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