Embedding d'interfaces
Contexte
Section intitulée « Contexte »Les interfaces peuvent en contenir d’autres. Cela crée une nouvelle interface qui rassemble toutes les méthodes des interfaces embarquées. C’est une forme de composition, similaire à l’embedding de structures.
Embedder Reader et Writer dans ReadWriter.
Code exemple
Section intitulée « Code exemple »package main
import "fmt"
type Reader interface { Read(p []byte) (n int, err error)}
type Writer interface { Write(p []byte) (n int, err error)}
type ReadWriter interface { Reader Writer}
// Une structure simple qui implémente les deuxtype Fichier struct{}
func (f Fichier) Read(p []byte) (int, error) { fmt.Println("Lecture...") return 0, nil}
func (f Fichier) Write(p []byte) (int, error) { fmt.Println("Écriture...") return 0, nil}
func main() { var rw ReadWriter = Fichier{} rw.Read(nil) rw.Write(nil)}Lecture...Écriture...