0Pricing
Lua Academy · Lekcja

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])
end

Zagnież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.

Wszystkie lekcje w tym kursie

  1. Tablice jako tabele
  2. Dodawanie i usuwanie elementów
  3. Iterowanie za pomocą ipairs
  4. Długość i sortowanie
← Powrót do Lua Academy