Sobes.tech
Junior — Middle

Hoe geef je de compiler aan dat een specifieke klasse een bepaalde interface implementeert?

sobes.tech AI

Antwoord van AI

In Go gebeurt de implementatie van interfaces impliciet: als een type alle methoden van een interface implementeert, wordt het automatisch beschouwd als implementerend die interface. Het is niet nodig om dit expliciet aan te geven.

Voorbeeld:

package main

import "fmt"

type Speaker interface {
    Speak() string
}

type Dog struct {}

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

func main() {
    var s Speaker
    d := Dog{}
    s = d // Dog implementeert de interface Speaker
    fmt.Println(s.Speak())
}

Als je expliciet wilt controleren of een type een interface implementeert, kun je een compilatiecontrole gebruiken:

var _ Speaker = (*Dog)(nil) // De compiler controleert of *Dog Speaker implementeert

Op deze manier worden in Go interfaces automatisch geïmplementeerd wanneer de benodigde methoden aanwezig zijn.