Długość i sortowanie
Policzy i posortuje Pan/Pani sekwencje.
Długość i sortowanie to bezpłatna lekcja Lua Academy na CoddyKit. To lekcja 4 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.
Operator długości
Operator # zwraca liczbę elementów w sekwencji.
W przypadku uporządkowanej tabeli z indeksami zaczynającymi się od 1 i zawierającej trzy elementy #t wynosi 3. Ostatni element znajduje się pod indeksem #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])Długość w pętli
Należy użyć #t jako górnej granicy numerycznej pętli for, aby odwiedzić każdy indeks.
Ponieważ sekwencje mają indeksy zaczynające się od 1, zakres to 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endPuste tabele
Pusta sekwencja ma długość 0.
Dlatego #t == 0 to szybki sposób sprawdzenia, czy lista zawiera jakiekolwiek elementy.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endDługość po zmianach
Po dodaniu lub usunięciu elementów za pomocą funkcji table wartość # jest odpowiednio aktualizowana.
Wstawienie zwiększa liczbę elementów, a usunięcie ją zmniejsza.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)Luki zakłócają określanie długości
Operator # działa niezawodnie tylko dla sekwencji bez luk. Luka może sprawić, że wynik będzie niezdefiniowany.
Należy używać table.insert i table.remove, aby wynik operatora # pozostał wiarygodny.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)Sortowanie w miejscu
table.sort(t) porządkuje sekwencję bezpośrednio, domyślnie od najmniejszego do największego elementu.
Zmienia oryginalną tabelę zamiast zwracać nową.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])Sortowanie łańcuchów znaków
Łańcuchy znaków są domyślnie sortowane alfabetycznie, znak po znaku.
Po sortowaniu indeks 1 zawiera pierwszy element w uporządkowanej sekwencji.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])Kolejność malejąca
Aby określić kolejność, należy przekazać funkcję porównującą. Zwracanie wartości a > b sortuje elementy od największego.
Funkcja decyduje, czy a powinno znajdować się przed b.
local nums = {3, 1, 4, 2}
table.sort(nums, function(a, b)
return a > b
end)
print(nums[1], nums[2], nums[3], nums[4])Niestandardowe porównania
Funkcje porównujące pozwalają sortować według dowolnej reguły, na przykład według długości łańcucha znaków zamiast alfabetu.
Poniżej krótsze słowa są umieszczane jako pierwsze.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])Długość i sortowanie
Narzędzia można połączyć: najpierw posortować listę, a następnie odczytać skrajne elementy według ich pozycji.
Po sortowaniu rosnącym minimum znajduje się pod indeksem 1, a maksimum pod indeksem #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])Sortowanie, a następnie iteracja
Typowy potok przetwarzania wygląda następująco: należy posortować sekwencję, a następnie przejść po niej za pomocą ipairs, aby wypisać elementy w kolejności.
Sortowanie zmienia tę samą tabelę z indeksami zaczynającymi się od 1, dlatego iteracja odbywa się w nowej kolejności.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endSzybkie sprawdzenie
Proszę przypomnieć sobie, co zwraca operator długości.
Podsumowanie
Poznali Państwo zasadę, że #t zlicza elementy w sekwencji bez luk, ostatni element znajduje się pod indeksem t[#t], a table.sort porządkuje elementy w miejscu — domyślnie rosnąco lub zgodnie z własną funkcją porównującą.
W połączeniu z insert, remove i ipairs mogą już Państwo swobodnie zarządzać sekwencjami w Lua.
Często zadawane pytania
Czy lekcja „Długość i sortowanie” jest bezpłatna?
Tak — pełny tekst „Długość i sortowanie” 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 „Długość i sortowanie”?
Policzy i posortuje Pan/Pani sekwencje. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Długość i sortowanie”?
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
- Tablice jako tabele
- Dodawanie i usuwanie elementów
- Iterowanie za pomocą ipairs
- Długość i sortowanie