Längd och sortering
Räkna och sortera sekvenser.
Längd och sortering är en gratis lektion i Lua Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lua Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lua Academy innehåller totalt 4 lektioner.
Längdoperatorn
Operatorn # returnerar antalet objekt i en sekvens.
För en felfri 1-baserad tabell med tre element är #t lika med 3. Det sista objektet finns på index #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])Längd i en loop
Använd #t som övre gräns i en numerisk for-loop för att gå igenom varje index.
Eftersom sekvenser är 1-baserade är intervallet 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endTomma tabeller
En tom sekvens har längden 0.
Därför är #t == 0 ett snabbt sätt att kontrollera om en lista innehåller några objekt.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endLängd efter ändringar
När du lägger till eller tar bort objekt med funktionerna i table uppdateras # i enlighet med detta.
Insert ökar antalet och remove minskar det.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)Luckor förstör längden
# är endast tillförlitlig för sekvenser utan luckor. En lucka kan göra resultatet odefinierat.
Använd table.insert och table.remove så att # förblir tillförlitlig.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)Sortera på plats
table.sort(t) ordnar om sekvensen på plats, från minst till störst som standard.
Funktionen ändrar den ursprungliga tabellen i stället för att returnera en ny.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])Sortera strängar
Strängar sorteras alfabetiskt som standard, genom jämförelse tecken för tecken.
Efter sorteringen innehåller index 1 det första objektet i ordningen.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])Fallande ordning
Skicka med en jämförelsefunktion för att styra ordningen. Om du returnerar a > b sorteras de största objekten först.
Funktionen avgör om a ska komma före 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])Egna jämförelser
Jämförelsefunktioner låter dig sortera enligt vilken regel som helst, till exempel efter stränglängd i stället för alfabetisk ordning.
Nedan kommer de kortare orden först.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])Längd plus sortering
Kombinera verktygen: sortera en lista och läs sedan ändpunkterna efter position.
Efter stigande sortering finns det minsta värdet på index 1 och det största på index #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])Sortera och iterera
Ett vanligt arbetsflöde är att sortera sekvensen och sedan gå igenom den med ipairs för att skriva ut objekten i ordning.
Sorteringen ordnar om samma 1-baserade tabell, så iterationen följer den nya ordningen.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endSnabbkontroll
Kom ihåg vad längdoperatorn ger dig.
Sammanfattning
Du har lärt dig att #t räknar objekten i en sekvens utan luckor, att det sista objektet finns på t[#t] och att table.sort ordnar om tabellen på plats, stigande som standard eller enligt en egen jämförelsefunktion.
Tillsammans med insert, remove och ipairs kan du nu hantera Lua-sekvenser med säkerhet.
Lär dig Lua med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 40
- Lektioner
- 159
Vanliga frågor
Är lektionen ”Längd och sortering” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lua Academy, inklusive ”Längd och sortering”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lua Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Längd och sortering”?
Räkna och sortera sekvenser. Ni övar på Lua Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lua Academy?
Du behöver inga förkunskaper. Utbildningen i Lua Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Längd och sortering”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lua Academy-lektionen?
Ja. Varje Lua Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Arrayer som tabeller
- Lägga till och ta bort element
- Iterera med ipairs
- Längd och sortering