Junior — Middle
¿Qué diferencia tiene la interfaz en el lenguaje Go en comparación con las interfaces en otros lenguajes de programación?
sobes.tech AI
Respuesta de la IA
En el lenguaje Go, las interfaces se diferencian en que son implícitas: el tipo no tiene que indicar explícitamente que implementa la interfaz. Si un tipo contiene todos los métodos de la interfaz, se considera automáticamente que la implementa.
Esto difiere de muchos otros lenguajes, donde es necesario declarar explícitamente que una clase o tipo implementa una interfaz.
Ejemplo:
package main
import "fmt"
type Reader interface {
Read(p []byte) (n int, err error)
}
type File struct {}
func (f File) Read(p []byte) (n int, err error) {
// implementación del método
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File implementa automáticamente Reader
fmt.Println(r)
}