Junior — Middle
Quelle différence y a-t-il entre l'interface en langage Go et les interfaces dans d'autres langages de programmation?
sobes.tech IA
Réponse de l'IA
Dans le langage Go, les interfaces diffèrent en ce qu'elles sont implicites : le type n'a pas besoin d'indiquer explicitement qu'il implémente l'interface. Si un type contient toutes les méthodes de l'interface, il est automatiquement considéré comme l'implémentant.
Cela diffère de nombreux autres langages, où il est nécessaire de déclarer explicitement qu'une classe ou un type implémente une interface.
Exemple :
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) {
// implémentation de la méthode
return 0, nil
}
func main() {
var r Reader
var f File
r = f // File implémente automatiquement Reader
fmt.Println(r)
}