Menu
Coddy logo textTech

Array generici

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 60 di 73.

I generics diventano davvero utili quando entrano in gioco le tabelle. Scrivi già array tipizzati come {number} o {string}. All'interno di una funzione generica, il tipo dell'elemento può essere semplicemente T, e {T} significa «un array di qualunque tipo risulti essere T».

Ecco l'esempio classico: recuperare il primo elemento di un array qualsiasi:

local function first<T>(items: {T}): T?
    return items[1]
end

Passa un {string} e il controllo deduce T = string, quindi il risultato è una stringa. Passa un {number} e il risultato è un numero. Una funzione sostituisce un'intera famiglia di copie specifiche per tipo.

Osserva attentamente il tipo restituito: è T?, non T. Un array può essere vuoto e, in tal caso, items[1] è nil: il tipo opzionale che hai incontrato prima lo indica chiaramente: «un T oppure nil». Il controllo ti inviterà a gestire il caso nil prima di usare il risultato, proprio il tipo di errore che vuoi individuare con un linguaggio tipizzato.

challenge icon

Sfida

Facile

Crea una funzione generica chiamata first che:

  • dichiara un parametro di tipo T
  • accetta un parametro chiamato items di tipo {T}
  • restituisce il primo elemento, con tipo restituito T? (è nil per un array vuoto)

Crea questi array tipizzati:

  • fruits di tipo {string} con "apple", "banana", "cherry"
  • scores di tipo {number} con 10, 20, 30, 40
  • flags di tipo {boolean} con false, true
  • empty di tipo {string} senza elementi

Stampa il risultato della chiamata a first con ciascun array, in quest'ordine, ciascuno su una riga separata.

Provalo tu

-- Scrivi il codice qui
-- 1) definisci first<T>(items: {T}): T? che restituisce items[1]
-- 2) crea fruits: {string}, scores: {number}, flags: {boolean},
--    e un array {string} vuoto
-- 3) stampa first(...) di ogni array, in quest'ordine
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online