Tablice jako tabele
Indeksowanie od 1 w Lua.
Tablice jako tabele to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Lua Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Lua Academy zawiera 4 lekcji w sumie.
Tabele jako listy w Lua
Lua ma jeden typ kontenera: tabelę. Gdy wartości są przechowywane w kolejności, tabela działa jak tablica lub lista.
Pustą tabelę tworzy się za pomocą {} i wypełnia później albo od razu umieszcza się wartości w nawiasach klamrowych.
local fruits = {"apple", "banana", "cherry"}
print(fruits)Indeksowanie zaczyna się od 1
To najważniejsza zasada: tablice Lua używają indeksowania od 1. Pierwszy element znajduje się pod indeksem 1, a nie 0.
Do odczytywania elementu na podstawie jego pozycji służą nawiasy kwadratowe.
local fruits = {"apple", "banana", "cherry"}
print(fruits[1])
print(fruits[2])
print(fruits[3])Indeks 0 jest pusty
Ponieważ liczenie zaczyna się od 1, pozycja 0 zwykle nie zawiera żadnej wartości.
Odczyt indeksu, któremu nigdy nie przypisano wartości, zwraca nil. Początkujący przechodzący z innych języków często popełniają tutaj błąd.
local colors = {"red", "green", "blue"}
print(colors[0])
print(colors[1])Zapisywanie elementu
Aby ustawić lub zastąpić wartość, należy przypisać ją do pozycji za pomocą składni z nawiasami kwadratowymi.
W tym przykładzie nadpisujemy drugi element. Zmiana będzie widoczna przy następnym odczycie tego indeksu.
local scores = {10, 20, 30}
scores[2] = 99
print(scores[2])Budowanie tabeli krok po kroku
Można zacząć od pustej tabeli i dodawać elementy pod kolejnymi indeksami. Należy pamiętać, aby rozpocząć od 1, żeby zachować spójną sekwencję.
Sekwencja nie ma luk: indeksy 1, 2 i 3 są zajęte.
local nums = {}
nums[1] = 5
nums[2] = 10
nums[3] = 15
print(nums[1], nums[2], nums[3])Różne typy wartości
Tabela Lua może zawierać wartości różnych typów w tej samej sekwencji: liczby, ciągi znaków i wartości logiczne.
Lua nie wymaga, aby każdy element miał ten sam typ, tak jak robią to niektóre języki.
local mixed = {42, "hello", true}
print(mixed[1])
print(mixed[2])
print(mixed[3])Wyświetlanie wszystkich elementów
Aby wyświetlić każdy element, należy przechodzić od indeksu 1 wzwyż za pomocą numerycznej pętli for.
W późniejszej lekcji przedstawimy wygodniejszy sposób (ipairs), ale ta pętla wyraźnie pokazuje zakres indeksów zaczynający się od 1.
local pets = {"cat", "dog", "fish"}
for i = 1, 3 do
print(i, pets[i])
endZagnieżdżone tabele
Elementem tabeli może być inna tabela. Pozwala to budować wiersze, siatki lub zgrupowane dane.
Aby sięgnąć do wnętrza, należy łączyć nawiasy: grid[1][2] odczytuje wiersz 1 i kolumnę 2 (oba indeksy zaczynają się od 1).
local grid = {
{1, 2, 3},
{4, 5, 6}
}
print(grid[1][2])
print(grid[2][3])Pierwszy i ostatni element według pozycji
Pierwszym elementem jest zawsze list[1]. W sekwencji o znanym rozmiarze ostatni element znajduje się pod indeksem równym jej rozmiarowi.
W tym przypadku trzy elementy oznaczają, że ostatni znajduje się pod indeksem 3.
local week = {"Mon", "Tue", "Wed"}
print("first:", week[1])
print("last:", week[3])Zmienianie wartości w miejscu
Tabele są modyfikowalne. Można aktualizować dowolny istniejący element bez tworzenia całej listy od nowa.
Poniżej zwiększamy każdy wynik, ponownie przypisując wartości do kolejnych indeksów w pętli.
local scores = {1, 2, 3}
for i = 1, 3 do
scores[i] = scores[i] + 10
end
print(scores[1], scores[2], scores[3])Tabele jako rekordy a tablice
Ten sam typ tabeli przechowuje również nazwane klucze, takie jak person.name. Gdy kluczami są liczby całkowite 1, 2, 3..., mówimy o sekwencji lub tablicy.
Ta lekcja skupia się na stylu sekwencyjnym z kluczami liczbowymi zaczynającymi się od 1.
local list = {"a", "b"}
list[3] = "c"
print(list[1], list[2], list[3])Szybki test
Sprawdź swoje rozumienie indeksowania w Lua.
Podsumowanie
Nauczyłeś się, że Lua używa tabel jako tablic, a indeksowanie zaczyna się od 1: pierwszy element znajduje się pod [1].
Można odczytywać, zapisywać i zagnieżdżać elementy tabel, a spójna sekwencja nie ma luk. Następnie nauczysz się dynamicznie dodawać i usuwać elementy.
Często zadawane pytania
Czy lekcja „Tablice jako tabele” jest bezpłatna?
Tak — pełny tekst „Tablice jako tabele” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Lua Academy, przejdź na CoddyKit PRO. Kurs Lua Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Tablice jako tabele”?
Indeksowanie od 1 w Lua. Ćwiczysz Lua Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Lua Academy?
Nie wymagamy żadnego doświadczenia. Lua Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Tablice jako tabele”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Lua Academy?
Tak. Każda lekcja Lua Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.