Sobes.tech
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)
}