Lua Academy · Lektion

Længde og sortering

Tæl og sortér sekvenser.

Lektion 4 af 413 trin

Længde og sortering er en gratis Lua Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lua Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lua Academy-kurset indeholder 4 lektioner i alt.

Længdeoperatoren

Operatoren # returnerer antallet af elementer i en sekvens.

For en ubrudt 1-baseret tabel med tre elementer er #t lig med 3. Det sidste element findes ved indekset #t.

local list = {"a", "b", "c"}
print(#list)
print(list[#list])

Længde i en løkke

Brug #t som den øvre grænse i en numerisk for-løkke for at gennemgå hvert indeks.

Da sekvenser er 1-baserede, er intervallet 1, #t.

local nums = {10, 20, 30, 40}
for i = 1, #nums do
  print(i, nums[i])
end

Tomme tabeller

En tom sekvens har længden 0.

Derfor er #t == 0 en hurtig måde at kontrollere, om en liste indeholder elementer.

local empty = {}
print(#empty)
if #empty == 0 then
  print("list is empty")
end

Længde efter ændringer

Når du tilføjer eller fjerner elementer med table-funktionerne, opdateres # tilsvarende.

Indsættelse øger antallet, og fjernelse mindsker det.

local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)

Huller gør længden upålidelig

# er kun pålidelig for sekvenser uden huller. Et hul kan gøre resultatet udefineret.

Hold dig til table.insert og table.remove, så # bliver ved med at være pålidelig.

local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)

Sortering på stedet

table.sort(t) omarrangerer sekvensen på stedet, som standard fra mindst til størst.

Funktionen ændrer den oprindelige tabel i stedet for at returnere en ny.

local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])

Sortering af strenge

Strenge sorteres som standard alfabetisk ved at sammenligne tegn for tegn.

Efter sorteringen indeholder indeks 1 det første element i rækkefølgen.

local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])

Faldende rækkefølge

Giv en sammenligningsfunktion som argument for at styre rækkefølgen. Hvis den returnerer a > b, sorteres det største element først.

Funktionen afgør, om a skal stå før 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])

Tilpassede sammenligninger

Sammenligningsfunktioner lader dig sortere efter enhver regel, for eksempel efter strenglængde i stedet for alfabetisk rækkefølge.

Nedenfor kommer de korteste ord 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ængde plus sortering

Kombinér værktøjerne: Sortér en liste, og læs derefter yderpunkterne ud fra deres position.

Efter sortering i stigende rækkefølge findes minimum ved indeks 1 og maksimum ved indeks #t.

local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])

Sortér og gennemløb

En almindelig arbejdsgang er at sortere sekvensen og derefter gennemgå den med ipairs for at udskrive elementerne i rækkefølge.

Sorteringen omarrangerer den samme 1-baserede tabel, så gennemløbet følger den nye rækkefølge.

local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
  print(i, s)
end

Hurtig kontrol

Husk, hvad længdeoperatoren giver dig.

Opsamling

Du har lært, at #t tæller elementer i en ubrudt sekvens, at det sidste element findes ved t[#t], og at table.sort omarrangerer på stedet, som standard i stigende rækkefølge eller ved hjælp af en tilpasset sammenligningsfunktion.

Sammen med insert, remove og ipairs kan du nu håndtere Lua-sekvenser sikkert.

Gratis at komme i gang

Lær Lua med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
40
Lektioner
159

Ofte stillede spørgsmål

Er lektionen “Længde og sortering” gratis?

Ja — alle 3 lektioner i læringssporet Lua Academy, inklusive “Længde og sortering”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lua Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Længde og sortering”?

Tæl og sortér sekvenser. Du øver dig i Lua Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Lua Academy?

Der kræves ingen tidligere erfaring. Lua Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “Længde og sortering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Lua Academy-lektion?

Ja. Alle Lua Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Arrays som tabeller
  2. Tilføj og fjern elementer
  3. Iterér med ipairs
  4. Længde og sortering
← Tilbage til Lua Academy