Menu
Coddy logo textTech

Iterowanie za pomocą pairs()

Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 1 z 54.

Podczas pracy z tabelami słownikowymi w Lua często musisz uzyskać dostęp do każdej zapisanej w nich pary klucz-wartość. Funkcja pairs() umożliwia to, pozwalając przejść pętlą przez wszystkie wpisy w tabeli, niezależnie od typu kluczy.Składnia użycia pairs() w pętli for wygląda tak:
for key, value in pairs(myTable) do
    -- użyj tutaj key i value
end
Podczas każdej iteracji pętli pairs() udostępnia zarówno klucz, jak i odpowiadającą mu wartość. Oznacza to, że możesz uzyskać dostęp do obu tych informacji i pracować z nimi jednocześnie.Oto praktyczny przykład z ekwipunkiem gracza:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
Ten kod wypisze nazwę każdego elementu i jego ilość. Funkcja pairs() działa z kluczami dowolnego typu, w tym ciągami znaków, liczbami, a nawet innymi tabelami.Praca z ciągami znakówW Lua możesz łączyć ze sobą ciągi znaków za pomocą operatora konkatenacji, który składa się z dwóch kropek (..). Na przykład "Hello" .. " " .. "World" daje w wyniku "Hello World".Jeśli chcesz sformatować tekst w kilku wierszach, możesz użyć znaku ucieczki nowej linii "\n". Gdy Lua napotka "\n" w ciągu znaków, potraktuje go jako polecenie przejścia do następnego wiersza.Na przykład print("Line 1\nLine 2") wyświetli:
Line 1
Line 2
challenge icon

Wyzwanie

Łatwy

Napisz funkcję printInventory, która przyjmuje tabelę inventory i zwraca sformatowany ciąg znaków zawierający wszystkie elementy i ich ilości.

Użyj pairs(), aby iterować po tabeli inventory i utworzyć ciąg znaków, w którym każdy wiersz zawiera nazwę elementu, a po niej jego ilość w formacie item: quantity. Każdy element powinien znajdować się w osobnym wierszu.

Aby umieścić każdy element w osobnym wierszu, użyj znaku nowej linii "\n" między wpisami. Na przykład "apple: 5\nbanana: 3" wyświetli się w dwóch osobnych wierszach. Uważaj, aby nie dodawać "\n" przed pierwszym elementem: dodawaj go tylko między elementami.

Parametry:

  • inventory (table): Tabela w stylu słownika, w której kluczami są nazwy elementów (ciągi znaków), a wartościami ich ilości (liczby)

Zwraca: Ciąg znaków zawierający każdy element i jego ilość w osobnym wierszu, oddzielone "\n". Przykładowy wynik dla {apple=5, banana=3}:
apple: 5
banana: 3

Spróbuj swoich sił

function printInventory(inventory)
    -- Aby sformatować wynik, możesz łączyć ciągi znaków za pomocą operatora '..'.
    -- Aby dodać nowy wiersz, użyj znaku specjalnego '\n'.
    -- Może być potrzebny sposób śledzenia, czy dodajesz pierwszy element, czy kolejny,
    -- aby zdecydować, czy przed elementem dodać znak nowego wiersza.
    
    -- Wpisz kod tutaj
end
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator Lua online