Sobes.tech
Junior — Middle

Qual é a diferença entre interfaces e tipos genéricos em programação?

sobes.tech IA

Resposta da IA

As interfaces e os tipos genéricos abordam tarefas diferentes na programação:

  • Interfaces descrevem um conjunto de métodos que um tipo deve implementar. Permitem trabalhar com diferentes tipos através de um contrato comum, garantindo o polimorfismo. Por exemplo, a interface Reader em Go define o método Read(), e qualquer tipo que implemente esse método pode ser usado como Reader.

  • Tipos genéricos permitem escrever funções e estruturas que funcionam com diferentes tipos de dados, mantendo a segurança de tipos. São modelos parametrizados por tipos que são compilados para tipos específicos na utilização.

Exemplo em Go:

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

// Função genérica
 func PrintSlice[T any](s []T) {
     for _, v := range s {
         fmt.Println(v)
     }
 }

Assim, as interfaces definem comportamentos, e os tipos genéricos oferecem versatilidade no código para diferentes tipos.