Lunghezza e ordinamento
Conti e ordini le sequenze.
Lunghezza e ordinamento è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 4 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.
L'operatore di lunghezza
L'operatore # restituisce il numero di elementi di una sequenza.
Per una tabella senza lacune, indicizzata a partire da 1 e con tre elementi, #t vale 3. L'ultimo elemento si trova all'indice #t.
local list = {"a", "b", "c"}
print(#list)
print(list[#list])La lunghezza in un ciclo
Utilizzi #t come limite superiore di un ciclo numerico for per visitare ogni indice.
Poiché le sequenze sono indicizzate a partire da 1, l'intervallo è 1, #t.
local nums = {10, 20, 30, 40}
for i = 1, #nums do
print(i, nums[i])
endTabelle vuote
Una sequenza vuota ha lunghezza 0.
Perciò #t == 0 è un modo rapido per verificare se una lista contiene elementi.
local empty = {}
print(#empty)
if #empty == 0 then
print("list is empty")
endLa lunghezza dopo le modifiche
Quando aggiunge o rimuove elementi con le funzioni di table, # si aggiorna di conseguenza.
L'inserimento aumenta il conteggio, la rimozione lo riduce.
local list = {"a", "b"}
table.insert(list, "c")
print(#list)
table.remove(list)
print(#list)Le lacune interrompono la lunghezza
# è affidabile solo per sequenze senza lacune. Una lacuna può rendere il risultato non definito.
Si attenga a table.insert e table.remove affinché # rimanga affidabile.
local good = {1, 2, 3}
print(#good)
table.insert(good, 4)
print(#good)Ordinare sul posto
table.sort(t) riordina la sequenza sul posto, dal più piccolo al più grande per impostazione predefinita.
Modifica la tabella originale invece di restituirne una nuova.
local nums = {3, 1, 2}
table.sort(nums)
print(nums[1], nums[2], nums[3])Ordinare le stringhe
Le stringhe vengono ordinate alfabeticamente per impostazione predefinita, confrontando un carattere alla volta.
Dopo l'ordinamento, l'indice 1 contiene il primo elemento nell'ordine risultante.
local names = {"Cy", "Ann", "Bob"}
table.sort(names)
print(names[1], names[2], names[3])Ordine decrescente
Passi una funzione di confronto per controllare l'ordine. Restituendo a > b, gli elementi vengono ordinati dal più grande al più piccolo.
La funzione stabilisce se a deve precedere 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])Confronti personalizzati
I comparatori consentono di ordinare in base a qualsiasi regola, ad esempio in base alla lunghezza delle stringhe anziché all'ordine alfabetico.
Di seguito, le parole più brevi vengono prima.
local words = {"hello", "hi", "howdy"}
table.sort(words, function(a, b)
return #a < #b
end)
print(words[1], words[2], words[3])Lunghezza e ordinamento
Combini gli strumenti: ordini una lista, poi legga gli estremi in base alla posizione.
Dopo un ordinamento crescente, il minimo si trova all'indice 1 e il massimo all'indice #t.
local data = {7, 2, 9, 4}
table.sort(data)
print("min:", data[1])
print("max:", data[#data])Ordinare e poi iterare
Una pipeline comune consiste nell'ordinare la sequenza e poi percorrerla con ipairs per stamparla in ordine.
L'ordinamento riordina la stessa tabella indicizzata a partire da 1, quindi l'iterazione segue il nuovo ordine.
local scores = {50, 10, 30}
table.sort(scores)
for i, s in ipairs(scores) do
print(i, s)
endControllo rapido
Ricordi che cosa restituisce l'operatore di lunghezza.
Riepilogo
Ha imparato che #t conta gli elementi di una sequenza senza lacune, che l'ultimo elemento si trova in t[#t] e che table.sort riordina sul posto, in ordine crescente per impostazione predefinita o con un comparatore personalizzato.
Insieme a insert, remove e ipairs, ora può gestire con sicurezza le sequenze Lua.
Domande Frequenti
La lezione «Lunghezza e ordinamento» è gratuita?
Sì — il testo completo di «Lunghezza e ordinamento» è 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 «Lunghezza e ordinamento»?
Conti e ordini le sequenze. 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 4 di 4.
Quanto tempo richiede la lezione «Lunghezza e ordinamento»?
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