Sobes.tech
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.