Junior — Middle
Qual é a diferença entre uma estrutura sem métodos e uma interface numa linguagem de programação?
sobes.tech IA
Resposta da IA
Em Go, uma estrutura (struct) é um tipo de dado concreto que contém um conjunto de campos (variáveis). Ela descreve como os dados estão organizados, mas por si só não contém comportamento.
A interface (interface) em Go descreve um conjunto de métodos que um tipo deve implementar para corresponder a essa interface. A interface não contém dados, apenas as assinaturas dos métodos.
Principais diferenças:
- Estrutura: é uma implementação concreta com campos.
- Interface: uma abstração que descreve o comportamento através de métodos.
- Uma estrutura pode implementar uma ou várias interfaces se tiver os métodos correspondentes.
Exemplo:
// Estrutura sem métodos
type User struct {
Name string
Age int
}
// Interface com método
type Greeter interface {
Greet() string
}
// Implementação da interface
func (u User) Greet() string {
return "Hello, " + u.Name
}
Aqui, User é uma estrutura com campos, e Greeter é uma interface que descreve o comportamento. Sem o método Greet, a estrutura User não implementa a interface Greeter.