Lua Academy · Lektion

Längd och sortering

Räkna och sortera sekvenser.

Lektion 4 av 413 steg

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

Tomma 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")
end

Lä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)
end

Snabbkontroll

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.

Gratis att börja

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

  1. Arrayer som tabeller
  2. Lägga till och ta bort element
  3. Iterera med ipairs
  4. Längd och sortering
← Tillbaka till Lua Academy