Iterer med ipairs
Gå gjennom sekvenser i riktig rekkefølge.
Iterer med ipairs er en gratis leksjon i Lua Academy på CoddyKit. Dette er leksjon 3 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.
Hvorfor ipairs
Det fungerer å gå gjennom en sekvens etter indeks, men ipairs er ryddigere og tryggere. Den gir Dem hver indeks og verdi i riktig rekkefølge.
Den starter på indeks 1 og stopper ved den første nil-verdien, noe som passer perfekt for sekvenser uten hull.
local fruits = {"apple", "banana", "cherry"}
for i, v in ipairs(fruits) do
print(i, v)
endLøkkestrukturen
Mønsteret er for index, value in ipairs(t) do ... end.
Ved hver gjennomgang er index den 1-baserte posisjonen, og value er elementet på denne posisjonen. Ingen manuell teller er nødvendig.
local colors = {"red", "green", "blue"}
for i, c in ipairs(colors) do
print("Color", i, "is", c)
endIgnorere indeksen
Hvis De bare trenger verdiene, navngir De indeksen _ etter konvensjonen for å vise at den ikke brukes.
Løkken går fortsatt gjennom elementene i 1-basert rekkefølge.
local nums = {10, 20, 30}
local total = 0
for _, n in ipairs(nums) do
total = total + n
end
print("sum:", total)Starter på 1, stopper ved et hull
ipairs begynner på indeks 1 og fortsetter så lenge neste indeks ikke er nil.
Hvis det finnes et hull, stopper den der. Derfor er ipairs beregnet på ryddige sekvenser, ikke tabeller med manglende posisjoner.
local t = {"a", "b", nil, "d"}
for i, v in ipairs(t) do
print(i, v)
endSummere verdier
En vanlig oppgave er å redusere en liste til ett tall, for eksempel en sum eller et maksimum.
ipairs gjør dette oversiktlig: gå gjennom hver verdi og akkumuler resultatet.
local prices = {3, 7, 2, 9}
local max = prices[1]
for _, p in ipairs(prices) do
if p > max then max = p end
end
print("max:", max)Bygge en ny liste
Kombiner ipairs med table.insert for å omforme én sekvens til en annen.
Her dobler vi hvert tall i en ny tabell, samtidig som rekkefølgen og de 1-baserte indeksene beholdes.
local src = {1, 2, 3}
local doubled = {}
for _, n in ipairs(src) do
table.insert(doubled, n * 2)
end
print(doubled[1], doubled[2], doubled[3])ipairs sammenlignet med pairs
pairs går gjennom alle nøkler, også strengnøkler, uten noen garantert rekkefølge. ipairs går bare gjennom heltallssekvensen 1, 2, 3 ... i rekkefølge.
Bruk ipairs for ordnede sekvenser.
local t = {"x", "y"}
t.name = "extra"
for i, v in ipairs(t) do
print(i, v)
endFiltrering med en betingelse
Bruk en if-setning inne i løkken for å beholde bare elementer som samsvarer.
Nedenfor samler vi ord med mer enn tre bokstaver i en ny sekvens.
local words = {"hi", "hello", "yo", "howdy"}
local long = {}
for _, w in ipairs(words) do
if #w > 3 then table.insert(long, w) end
end
print(long[1], long[2])Finne et element
For å søke bruker De ipairs i en løkke og stopper når elementet er funnet. Indeksen forteller hvilken plass elementet har, med 1 som første plass.
Vi avslutter tidlig med break så snart målelementet dukker opp.
local names = {"Ann", "Bob", "Cy"}
local found = 0
for i, n in ipairs(names) do
if n == "Bob" then found = i break end
end
print("Bob at index", found)Telle under gjennomløping
De kan telle treff ved å øke en variabel inne i løkken.
Dermed slipper De å håndtere indekser direkte, samtidig som hele sekvensen gjennomgås.
local marks = {5, 8, 3, 9, 6}
local passes = 0
for _, m in ipairs(marks) do
if m >= 6 then passes = passes + 1 end
end
print("passing:", passes)Nestede ipairs
For en tabell med tabeller kan De legge to ipairs-løkker inni hverandre for å besøke hver celle.
Den ytre løkken går gjennom rader, og den indre går gjennom kolonner, alle med 1-basert indeksering.
local grid = {{1, 2}, {3, 4}}
for _, row in ipairs(grid) do
for _, cell in ipairs(row) do
print(cell)
end
endHurtigsjekk
Husk hvor ipairs begynner og slutter.
Oppsummering
De har lært mønsteret for i, v in ipairs(t): Det går gjennom en sekvens i 1-basert rekkefølge og stopper ved det første hullet.
Bruk det til å summere, filtrere, søke i og transformere lister. Deretter skal De måle lengden med # og ordne elementer med table.sort.
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 «Iterer med ipairs» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lua Academy, inkludert «Iterer med ipairs», 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 «Iterer med ipairs»?
Gå gjennom sekvenser i riktig rekkefølge. 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 3 av 4.
Hvor lang tid tar leksjonen «Iterer med ipairs»?
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