Sobes.tech
Junior — Middle

¿Cuál es la diferencia de las interfaces en Golang en comparación con las de otros lenguajes de programación?

sobes.tech AI

Respuesta de la IA

En Go, las interfaces se implementan mediante el principio de implementación implícita. Esto significa que un tipo implementa automáticamente una interfaz si tiene todos los métodos que la interfaz requiere, sin necesidad de declararlo explícitamente en el código (a diferencia de Java o C#, donde es necesario declarar explícitamente la implementación de la interfaz).

Esto permite escribir un código más flexible y menos acoplado, ya que los tipos y las interfaces no dependen directamente entre sí.

Ejemplo:

package main
import "fmt"

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

type MyReader struct{}

func (r MyReader) Read(p []byte) (n int, err error) {
    // implementación de lectura
    return 0, nil
}

func main() {
    var r Reader = MyReader{} // implementación implícita de la interfaz
    fmt.Println(r)
}

También en Go no hay herencia de clases, las interfaces se usan para el polimorfismo y la composición, lo que las distingue de muchos otros lenguajes.