Senior
Qu'est-ce que les interfaces en Go ? Comment les types implémentent-ils les interfaces ?
sobes.tech IA
Réponse de l'IA
En Go, une interface est un ensemble de méthodes qui décrivent un comportement. Un type implémente une interface s'il contient toutes les méthodes déclarées dans l'interface, sans indication explicite de l'implémentation de l'interface.
Ceci est appelé implémentation implicite des interfaces. Grâce à cela, on peut écrire un code plus flexible et extensible.
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 lecture
return 0, nil
}
func main() {
var r Reader
f := File{}
r = f // File implémente Reader
fmt.Println(r)
}
Ici, le type File implémente l'interface Reader car il possède une méthode Read avec la signature requise.