0Pricing
Lua Academy · Lezione

Array come tabelle

L'indicizzazione da 1 in Lua.

Array come tabelle è una lezione Lua Academy gratuita su CoddyKit. Questa è la lezione 1 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.

Le tabelle sono le liste di Lua

Lua ha un solo tipo di contenitore: la tabella. Quando si memorizzano i valori in ordine, la tabella funziona come un array o una lista.

Si crea una tabella vuota con {} e la si riempie in seguito, oppure si elencano subito i valori tra le parentesi graffe.

local fruits = {"apple", "banana", "cherry"}
print(fruits)

L'indicizzazione inizia da 1

Questa è la regola più importante: gli array di Lua sono basati su 1. Il primo elemento si trova all'indice 1, non 0.

Utilizzi le parentesi quadre per leggere un elemento in base alla sua posizione.

local fruits = {"apple", "banana", "cherry"}
print(fruits[1])
print(fruits[2])
print(fruits[3])

L'indice zero è vuoto

Poiché il conteggio inizia da 1, la posizione 0 normalmente non contiene nulla.

La lettura di un indice che non è mai stato impostato restituisce nil. Chi proviene da altri linguaggi spesso inciampa in questo dettaglio.

local colors = {"red", "green", "blue"}
print(colors[0])
print(colors[1])

Scrivere un elemento

Assegni un valore a una posizione usando la sintassi con parentesi quadre per impostarlo o sostituirlo.

Qui sovrascriviamo il secondo elemento. La modifica sarà visibile alla successiva lettura di quell'indice.

local scores = {10, 20, 30}
scores[2] = 99
print(scores[2])

Costruire una tabella passo dopo passo

È possibile iniziare con una tabella vuota e aggiungere elementi a indici consecutivi. Ricordi di iniziare da 1 per mantenere una sequenza ordinata.

Una sequenza non presenta buchi: gli indici 1, 2 e 3 sono tutti occupati.

local nums = {}
nums[1] = 5
nums[2] = 10
nums[3] = 15
print(nums[1], nums[2], nums[3])

Valori di tipo diverso

Una tabella Lua può contenere valori di tipi diversi nella stessa sequenza: numeri, stringhe e valori booleani.

Lua non obbliga ogni elemento ad avere lo stesso tipo, come fanno alcuni linguaggi.

local mixed = {42, "hello", true}
print(mixed[1])
print(mixed[2])
print(mixed[3])

Stampare tutti gli elementi

Per mostrare ogni elemento, percorra gli indici a partire da 1 usando un ciclo numerico for.

In una lezione successiva vedremo un modo più semplice (ipairs), ma questo ciclo rende evidente l'intervallo basato su 1.

local pets = {"cat", "dog", "fish"}
for i = 1, 3 do
  print(i, pets[i])
end

Tabelle annidate

Un elemento di una tabella può essere a sua volta una tabella. Questo consente di costruire righe, griglie o dati raggruppati.

Concateni le parentesi per accedere al contenuto interno: grid[1][2] legge la riga 1, colonna 2 (entrambe basate su 1).

local grid = {
  {1, 2, 3},
  {4, 5, 6}
}
print(grid[1][2])
print(grid[2][3])

Primo e ultimo elemento in base alla posizione

Il primo elemento è sempre list[1]. Per una sequenza di dimensione nota, l'ultimo si trova in corrispondenza di quel conteggio.

Qui, con tre elementi, l'ultimo si trova all'indice 3.

local week = {"Mon", "Tue", "Wed"}
print("first:", week[1])
print("last:", week[3])

Modificare i valori sul posto

Le tabelle sono mutabili. È possibile aggiornare qualsiasi elemento esistente senza ricostruire l'intera lista.

Di seguito aumentiamo ogni punteggio riassegnando ciascun indice in un ciclo.

local scores = {1, 2, 3}
for i = 1, 3 do
  scores[i] = scores[i] + 10
end
print(scores[1], scores[2], scores[3])

Tabelle come record e array

Lo stesso tipo tabella memorizza anche chiavi con nome, come person.name. Quando le chiavi sono gli interi 1, 2, 3..., si parla di sequenza o array.

Questa lezione si concentra sullo stile sequenziale, con chiavi numeriche basate su 1.

local list = {"a", "b"}
list[3] = "c"
print(list[1], list[2], list[3])

Verifica rapida

Verifichi la Sua comprensione dell'indicizzazione in Lua.

Riepilogo

Ha imparato che Lua usa le tabelle come array e che l'indicizzazione è basata su 1: il primo elemento si trova in [1].

È possibile leggere, scrivere e annidare gli elementi delle tabelle; una sequenza ordinata non presenta buchi. Ora aggiungerà e rimuoverà dinamicamente gli elementi.

Domande Frequenti

La lezione «Array come tabelle» è gratuita?

Sì — il testo completo di «Array come tabelle» è 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 «Array come tabelle»?

L'indicizzazione da 1 in Lua. 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 1 di 4.

Quanto tempo richiede la lezione «Array come tabelle»?

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

  1. Array come tabelle
  2. Aggiungere e rimuovere elementi
  3. Iterare con ipairs
  4. Lunghezza e ordinamento
← Torna a Lua Academy