Sobes.tech
Junior — Middle

Qual è la differenza tra interfacce e tipi generici nella programmazione?

sobes.tech AI

Risposta dell'AI

Le interfacce e i tipi generici affrontano compiti diversi nella programmazione:

  • Le interfacce descrivono un insieme di metodi che un tipo deve implementare. Permettono di lavorare con diversi tipi attraverso un contratto comune, garantendo il polimorfismo. Ad esempio, l'interfaccia Reader in Go definisce il metodo Read(), e qualsiasi tipo che implementa questo metodo può essere usato come Reader.

  • I tipi generici consentono di scrivere funzioni e strutture che lavorano con diversi tipi di dati, mantenendo la sicurezza dei tipi. Sono modelli parametrizzati per tipi che vengono compilati per tipi specifici all'uso.

Esempio in Go:

// Interfaccia
 type Reader interface {
     Read(p []byte) (n int, err error)
 }

// Funzione generica
 func PrintSlice[T any](s []T) {
     for _, v := range s {
         fmt.Println(v)
     }
 }

In questo modo, le interfacce definiscono il comportamento, e i tipi generici offrono versatilità nel codice per diversi tipi.