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.