Menu
Coddy logo textTech

Una funzione identità generica

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

Ecco la funzione identità fatta nel modo giusto, come funzione generica:

local function identity<T>(value: T): T
    return value
end

<T> dopo il nome della funzione dichiara un parametro di tipo: un segnaposto che indica «un certo tipo, deciso a ogni chiamata». All'interno della firma usi T esattamente come un tipo reale: il parametro è di tipo T e la funzione restituisce un valore di tipo T.

Usare lo stesso T per l'input e l'output è tutto il trucco. Li lega insieme. Chiama identity("hello") e il verificatore dei tipi decide che T = string per quella chiamata, quindi il risultato è una string. Chiama identity(42) e T = number, quindi il risultato è un number. Un solo corpo, ogni tipo, non si perde nulla.

T è solo un nome convenzionale (abbreviazione di «Type»): <Item> o <Value> funzionano altrettanto bene. E come sempre in Luau, le parentesi angolari esistono solo per il verificatore: in fase di esecuzione questa è la semplice funzione Lua function identity(value) return value end.

challenge icon

Sfida

Facile

Crea una funzione generica chiamata identity che:

  • dichiari un parametro di tipo T
  • accetti un parametro chiamato value di tipo T
  • restituisca quel valore, con tipo restituito T

Poi crea queste variabili tipizzate usando la tua funzione:

  • luckyNumber di tipo number: chiama identity con 7
  • greeting di tipo string: chiama identity con "Hello, Luau!"
  • isReady di tipo boolean: chiama identity con true

Stampa quanto segue, ciascuno su una riga:

  1. luckyNumber
  2. greeting
  3. isReady
  4. il risultato della chiamata a identity con "<code>generics" direttamente dentro print
  5. il risultato della chiamata a identity con 99 direttamente dentro print

Provalo tu

-- Scrivi il codice qui
-- 1) definisci identity<T>(value: T): T
-- 2) crea luckyNumber, greeting e isReady usando chiamate a identity
-- 3) stampali, poi stampa identity(il testo esatto delle istruzioni) e identity(99)
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