Menu
Coddy logo textTech

Tworzenie tabel i unpack()

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

Lua udostępnia uzupełniającą się parę technik pracy z wieloma wartościami: tworzenie tabel i unpack(). Są one szczególnie przydatne podczas pracy z funkcjami, które wymagają elastycznej obsługi argumentów.Możesz zebrać wiele wartości w tabeli przypominającej listę, używając składni konstruktora tabeli z nawiasami klamrowymi. Zbiera to wszystkie wartości w jedną strukturę tabeli.
local args = {10, 20, 30}
print(args[1])  -- Wynik: 10
print(#args)    -- Wynik: 3
The funkcja unpack() robi coś przeciwnego. Przyjmuje tablicę w formie listy i zwraca wszystkie jej elementy jako osobne wartości. Dzięki temu możesz przekazać zawartość tablicy jako oddzielne argumenty funkcji.Ważne: Chociaż w nowszych wersjach Lua (5.2+) tę funkcję przeniesiono do table.unpack(), to środowisko działa na Lua 5.1, więc musisz używać globalnej funkcji unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- Wynik: 5    10    15
Te techniki płynnie ze sobą współpracują. Możesz zebrać wartości w tablicy, manipulować nią, a następnie rozpakować ją z powrotem na pojedyncze wartości.
challenge icon

Wyzwanie

Łatwy

Napisz funkcję forwardArguments, która przyjmuje trzy liczby: a, b i c, a następnie zwraca ich sumę, tworząc tablicę i używając unpack().

Utwórz tablicę zawierającą trzy argumenty za pomocą składni {a, b, c}, a następnie rozpakuj ją i przekaż wartości innej funkcji, która oblicza ich sumę.

Uwaga: Użyj globalnej funkcji unpack() zamiast table.unpack(), aby zapewnić zgodność z tym środowiskiem.

Logika:

  • Użyj {a, b, c}, aby utworzyć tablicę zawierającą wszystkie trzy argumenty
  • Utwórz osobną funkcję o nazwie sum, która przyjmuje trzy parametry i zwraca ich sumę
  • Użyj unpack(), aby przekazać wartości z tablicy do funkcji sum
  • Zwróć wynik funkcji sum

Parametry:

  • a (liczba): Pierwsza liczba
  • b (liczba): Druga liczba
  • c (liczba): Trzecia liczba

Zwraca: Sumę wszystkich trzech liczb (liczba)

Spróbuj swoich sił

function forwardArguments(a, b, c)
    -- Utwórz osobną funkcję obliczającą sumę

    -- Utwórz tablicę zawierającą wszystkie trzy argumenty

    -- Rozpakuj tablicę i przekaż wartości do funkcji obliczającej sumę
    -- Wskazówka: Użyj globalnej funkcji 'unpack', aby rozpakować argumenty z tablicy

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