Aggiungere e rimuovere elementi
Usi table.insert e remove.
Aggiungere e rimuovere elementi è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Lua Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Lua Academy include 4 lezioni in totale.
Far crescere una sequenza
Le liste reali cambiano dimensione durante l'esecuzione del programma. Lua offre table.insert per aggiungere elementi alla fine.
Poiché le sequenze sono basate su 1, un'aggiunta dopo due elementi finisce all'indice 3.
local list = {"a", "b"}
table.insert(list, "c")
print(list[1], list[2], list[3])table.insert aggiunge in coda
Chiamata con due argomenti, table.insert(t, value) inserisce value nella posizione subito successiva all'indice finale corrente.
Ogni chiamata fa crescere la sequenza di un elemento, mantenendo gli indici consecutivi.
local q = {}
table.insert(q, "first")
table.insert(q, "second")
print(q[1], q[2])Inserire in una posizione
Con tre argomenti, table.insert(t, pos, value) inserisce il valore all'indice pos e sposta in avanti gli elementi successivi.
Qui inseriamo "X" nella posizione 2, quindi il vecchio secondo elemento passa alla posizione 3.
local list = {"a", "b", "c"}
table.insert(list, 2, "X")
print(list[1], list[2], list[3], list[4])Inserire all'inizio
Per inserire un elemento all'inizio, utilizzi la posizione 1. Ogni elemento esistente viene spostato di un indice in avanti.
È utile, ma più lento per le liste di grandi dimensioni, poiché Lua deve spostare tutti gli elementi.
local list = {"b", "c"}
table.insert(list, 1, "a")
print(list[1], list[2], list[3])Rimuovere l'ultimo elemento
table.remove(t), con un solo argomento, elimina e restituisce l'ultimo elemento.
La sequenza si riduce di un elemento e rimane priva di buchi.
local list = {"a", "b", "c"}
local gone = table.remove(list)
print("removed:", gone)
print(list[1], list[2], list[3])Rimuovere in una posizione
table.remove(t, pos) elimina l'elemento in corrispondenza di pos e sposta indietro gli elementi successivi per chiudere il buco.
Ricordi che le posizioni sono basate su 1: quindi pos = 1 rimuove il primo elemento.
local list = {"a", "b", "c"}
local gone = table.remove(list, 1)
print("removed:", gone)
print(list[1], list[2])Remove restituisce il valore
Entrambe le forme di table.remove restituiscono il valore rimosso, quindi è possibile utilizzarlo subito.
Questo fa comportare una tabella come uno stack: si inserisce con insert e si estrae con remove.
local stack = {}
table.insert(stack, 10)
table.insert(stack, 20)
local top = table.remove(stack)
print("popped:", top)Una coda semplice
Inserisca gli elementi alla fine e li rimuova dall'inizio (pos = 1) per modellare una coda: primo entrato, primo uscito.
A ogni rimozione il resto degli elementi viene spostato indietro, quindi il successivo attende all'indice 1.
local queue = {}
table.insert(queue, "Ann")
table.insert(queue, "Bob")
print("serving:", table.remove(queue, 1))
print("next:", queue[1])Evitare i buchi manuali
Impostare un elemento su nil con list[2] = nil può lasciare un buco nel mezzo, interrompendo la sequenza.
È preferibile usare table.remove, che sposta gli elementi e mantiene gli indici consecutivi.
local list = {"a", "b", "c"}
table.remove(list, 2)
print(list[1], list[2])Costruire a partire dall'input
Un modello comune consiste nel partire da una tabella vuota e aggiungere elementi man mano che arrivano i dati.
Qui raccogliamo i numeri pari in una nuova sequenza usando 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])Usare insieme inserimento e rimozione
È possibile combinare liberamente le operazioni. Di seguito aggiungiamo tre nomi e poi rimuoviamo quello centrale.
Dopo la rimozione, la lista contiene due elementi consecutivi.
local names = {}
table.insert(names, "Al")
table.insert(names, "Bea")
table.insert(names, "Cy")
table.remove(names, 2)
print(names[1], names[2])Verifica rapida
Rifletta su come la rimozione sposta gli elementi della sequenza.
Riepilogo
Ha imparato a far crescere le liste con table.insert (aggiungendo in coda o inserendo in una posizione basata su 1) e a ridurle con table.remove, che restituisce il valore rimosso e chiude i buchi.
Eviti i buchi manuali creati con nil. Ora imparerà a iterare sulle sequenze in modo ordinato con ipairs.
Domande Frequenti
La lezione «Aggiungere e rimuovere elementi» è gratuita?
Sì — il testo completo di «Aggiungere e rimuovere elementi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Lua Academy, passa a CoddyKit PRO. Il corso Lua Academy include 4 lezioni in totale.
Cosa imparerò in «Aggiungere e rimuovere elementi»?
Usi table.insert e remove. Eserciti Lua Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Lua Academy?
Non è richiesta alcuna esperienza precedente. Lua Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Aggiungere e rimuovere elementi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Lua Academy?
Sì. Ogni lezione Lua Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Array come tabelle
- Aggiungere e rimuovere elementi
- Iterare con ipairs
- Lunghezza e ordinamento