Legg til og fjern elementer
Bruk table.insert og remove.
Legg til og fjern elementer er en gratis leksjon i Lua Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lua Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Utvide en sekvens
Virkelige lister endrer størrelse mens et program kjører. Lua gir Dem table.insert for å legge til elementer på slutten.
Fordi sekvenser er 1-baserte, havner et element som legges til etter to elementer på indeks 3.
local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])table.insert legger til på slutten
Når table.insert(t, value) kalles med to argumenter, plasseres value rett etter gjeldende siste indeks.
Hvert kall utvider sekvensen med ett element og beholder indeksene sammenhengende.
local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])Sette inn på en posisjon
Med tre argumenter setter table.insert(t, pos, value) inn et element på indeks pos og flytter de påfølgende elementene opp.
Her setter vi inn "X" på posisjon 2, slik at det gamle andre elementet flyttes til posisjon 3.
local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])Sette inn først
For å sette inn først setter De inn elementet på posisjon 1. Alle eksisterende elementer flyttes én indeks opp.
Dette er nyttig, men tregere for store lister, siden Lua må flytte alle elementene.
local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])Fjerne det siste elementet
table.remove(t) med ett argument sletter og returnerer det siste elementet.
Sekvensen blir én kortere og forblir uten hull.
local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])Fjerne på en posisjon
table.remove(t, pos) sletter elementet på pos og flytter de påfølgende elementene ned for å lukke hullet.
Husk at posisjonene er 1-baserte, så pos = 1 fjerner det første elementet.
local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])Remove returnerer verdien
Begge formene av table.remove returnerer verdien de fjernet, slik at De kan bruke den med én gang.
Dette gjør at en tabell kan fungere som en stakk: push med insert og pop med remove.
local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)En enkel kø
Legg til på slutten og fjern fra begynnelsen (pos = 1) for å modellere en kø: først inn, først ut.
Ved hver fjerning flyttes resten ned, slik at neste element står på indeks 1.
local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])Unngå manuelle hull
Hvis De setter et element til nil med list[2] = nil, kan det oppstå et hull i midten som ødelegger sekvensen.
Foretrekk table.remove, som flytter elementene og beholder sammenhengende indekser.
local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])Bygge fra inndata
Et vanlig mønster er å starte med en tom tabell og legge til elementer etter hvert som data kommer inn.
Her samler vi partall i en ny sekvens ved hjelp av insert.
local evens = {}
for n = 1, 6 do
if n % 2 == 0 then
table.insert(evens, n)
end
end
print(evens[1], evens[2], evens[3])Sette inn og fjerne sammen
De kan fritt blande operasjoner. Nedenfor legger vi til tre navn og fjerner deretter det midterste.
Etter fjerningen har listen to sammenhengende elementer.
local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])Hurtigsjekk
Tenk over hvordan fjerning flytter elementene i sekvensen.
Oppsummering
De har lært å utvide lister med table.insert (legge til på slutten eller sette inn på en 1-basert posisjon) og gjøre dem kortere med table.remove, som returnerer den fjernede verdien og lukker hull.
Unngå manuelle nil-hull. Deretter skal De lære å gå ryddig gjennom sekvenser med ipairs.
Lær deg Lua med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 40
- Leksjoner
- 159
Ofte stilte spørsmål
Er leksjonen «Legg til og fjern elementer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lua Academy, inkludert «Legg til og fjern elementer», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lua Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Legg til og fjern elementer»?
Bruk table.insert og remove. Du øver på Lua Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lua Academy?
Ingen tidligere erfaring er nødvendig. Lua Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Legg til og fjern elementer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lua Academy-leksjonen?
Ja. Alle Lua Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Tabeller som tabeller
- Legg til og fjern elementer
- Iterer med ipairs
- Lengde og sortering