Sobes.tech
Junior — Middle

¿Cuál es la diferencia entre una estructura sin métodos y una interfaz en un lenguaje de programación?

sobes.tech AI

Respuesta de la IA

En Go, una estructura (struct) es un tipo de dato concreto que contiene un conjunto de campos (variables). Describe cómo están organizados los datos, pero en sí misma no contiene comportamiento.

La interfaz (interface) en Go describe un conjunto de métodos que un tipo debe implementar para cumplir con esa interfaz. La interfaz no contiene datos, solo las firmas de los métodos.

Diferencias principales:

  • Estructura: es una implementación concreta con campos.
  • Interfaz: es una abstracción que describe el comportamiento a través de métodos.
  • Una estructura puede implementar una o varias interfaces si tiene los métodos correspondientes.

Ejemplo:

// Estructura sin métodos
type User struct {
    Name string
    Age  int
}

// Interfaz con método
type Greeter interface {
    Greet() string
}

// Implementación de la interfaz
func (u User) Greet() string {
    return "Hello, " + u.Name
}

Aquí, User es una estructura con campos, y Greeter es una interfaz que describe el comportamiento. Sin el método Greet, la estructura User no implementa la interfaz Greeter.