Sobes.tech
Junior — Middle

Comment indiquer au compilateur qu'une classe spécifique implémente une interface donnée ?

sobes.tech IA

Réponse de l'IA

En Go, l'implémentation d'une interface se fait de manière implicite : si un type implémente toutes les méthodes d'une interface, il est automatiquement considéré comme implémentant cette interface. Il n'est pas nécessaire de le spécifier explicitement.

Exemple :

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

func (d Dog) Speak() string {
    return "Wouf!"
}

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implémente l'interface Speaker
    fmt.Println(s.Speak())
}

Si vous souhaitez vérifier explicitement qu'un type implémente une interface, vous pouvez utiliser une vérification de compilation :

var _ Speaker = (*Dog)(nil) // Le compilateur vérifiera que *Dog implémente Speaker

Ainsi, en Go, les interfaces sont implémentées automatiquement lorsque les méthodes nécessaires sont présentes.