Sobes.tech
Junior — Middle

Hoe kan worden vastgesteld of een bepaalde structuur een gegeven interface implementeert?

sobes.tech AI

Antwoord van AI

In Go wordt de implementatie van een interface impliciet gecontroleerd: als een type alle methoden bevat die in de interface zijn gedeclareerd, implementeert het automatisch deze interface.

Om te bepalen of een structuur een gegeven interface implementeert, kun je:

  1. Proberen een instantie van de structuur toe te wijzen aan een variabele van het interface-type — als de compilatie slaagt, betekent dit dat de structuur de interface implementeert.
  2. Een statische controle gebruiken met _var _:
var _ MyInterface = (*MyStruct)(nil)

Als deze code zonder fouten compileert, betekent dit dat MyStruct de interface MyInterface implementeert.

Voorbeeld:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m *MyStruct) DoSomething() {
    // implementatie
}

// Controleer implementatie van interface
var _ MyInterface = (*MyStruct)(nil)

Op deze manier is het in Go niet nodig om expliciet de implementatie van een interface aan te geven — het volstaat om al zijn methoden te implementeren.