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:
- 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.
- 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.