table.sort met vergelijkingsfuncties
Sorteer tables met aangepaste vergelijkingsfuncties en stabiele sorteermethoden
table.sort met vergelijkingsfuncties is een gratis Lua Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Lua Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Lua Academy bevat in totaal 4 lessen.
Wat is table.sort?
table.sort sorteert een tabel ter plaatse met behulp van een vergelijkingsfunctie. Zonder vergelijkingsfunctie gebruikt de functie de operator <.
Standaard oplopend sorteren
Roep table.sort(t) aan op een tabel met getallen of tekenreeksen om oplopend te sorteren.
local nums = {5, 2, 8, 1, 9}
table.sort(nums)
for _, v in ipairs(nums) do print(v) endAangepaste vergelijkingsfunctie
Geef als tweede argument een functie door: function(a, b) return a < b end.
local words = {"banana", "apple", "cherry"}
table.sort(words, function(a, b) return a < b end)
print(table.concat(words, ", "))Aflopend sorteren
Draai de vergelijking om om in aflopende volgorde te sorteren.
local nums = {3, 1, 4, 1, 5, 9}
table.sort(nums, function(a, b) return a > b end)
print(table.concat(nums, ", "))Tabellen sorteren op een veld
Sorteer een reeks records op een specifieke veldsleutel.
local people = {
{name="Charlie", age=30},
{name="Alice", age=25},
{name="Bob", age=28}
}
table.sort(people, function(a, b) return a.age < b.age end)
for _, p in ipairs(people) do print(p.name, p.age) endSorteren op meerdere sleutels
Sorteer op een primaire sleutel en bij gelijke waarden vervolgens op een secundaire sleutel.
table.sort(people, function(a, b)
if a.age ~= b.age then return a.age < b.age end
return a.name < b.name
end)Opmerking over stabiliteit
table.sort van Lua is niet gegarandeerd stabiel. Gelijke elementen kunnen in willekeurige volgorde verschijnen. Gebruik een index als tie-breaker voor deterministische resultaten.
Tekenreeksen hoofdletterongevoelig sorteren
Normaliseer met string.lower binnen de vergelijkingsfunctie.
table.sort(words, function(a, b)
return a:lower() < b:lower()
end)Sorteren met een sleutel-extractor
Sla geëxtraheerde sleutels op om herhaalde berekeningen tijdens het sorteren te voorkomen, met een aanpak op basis van een Schwartzian-transformatie.
local function sortBy(t, keyFn)
local keyed = {}
for i, v in ipairs(t) do keyed[i] = {val=v, key=keyFn(v)} end
table.sort(keyed, function(a, b) return a.key < b.key end)
for i, item in ipairs(keyed) do t[i] = item.val end
endGrote tabellen sorteren
Overweeg voor zeer grote tabellen een Schwartzian-transformatie: koppel elk element aan zijn sorteersleutel, sorteer en haal daarna de elementen eruit. Zo voorkom je dat de sleutel bij elke vergelijking opnieuw wordt berekend.
Ter plaatse versus kopie
table.sort wijzigt de oorspronkelijke tabel. Gebruik om een kopie te sorteren eerst table.move of doorloop de tabel om een kloon te maken en sorteer daarna de kloon.
Vraag over de vergelijkingsfunctie
Welke vergelijkingsfunctie sorteert getallen in oplopende volgorde?
Samenvatting: table.sort
table.sort sorteert ter plaatse, accepteert een optionele vergelijkingsfunctie, is niet stabiel en wordt vaak gebruikt met strategieën op basis van velden of meerdere sleutels voor complexe sorteervolgordes.
Leer Lua met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 40
- Lessen
- 159
Veelgestelde vragen
Is de les “table.sort met vergelijkingsfuncties” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Lua Academy, waaronder “table.sort met vergelijkingsfuncties”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Lua Academy bevat in totaal 4 lessen.
Wat leer ik in “table.sort met vergelijkingsfuncties”?
Sorteer tables met aangepaste vergelijkingsfuncties en stabiele sorteermethoden Je oefent met Lua Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Lua Academy te beginnen?
Ervaring vooraf is niet nodig. Lua Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “table.sort met vergelijkingsfuncties”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Lua Academy?
Ja. Elke les over Lua Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- table.sort met vergelijkingsfuncties
- table.concat en table.move
- Diepe en ondiepe kopieën
- Tables transformeren: map, filter, reduce