Junior — Middle
Jak lze určit, zda určitá struktura implementuje dané rozhraní?
sobes.tech AI
Odpověď od AI
V jazyce Go je implementace rozhraní implicitní: pokud typ obsahuje všechny metody deklarované v rozhraní, automaticky ho implementuje.
Chcete-li zjistit, zda struktura implementuje dané rozhraní, můžete:
- Pokusit se přiřadit instanci struktury proměnné typu rozhraní — pokud kompilace proběhne úspěšně, znamená to, že struktura rozhraní implementuje.
- Použít statickou kontrolu pomocí _var _:
var _ MyInterface = (*MyStruct)(nil)
Pokud se tento kód zkompiluje bez chyb, znamená to, že MyStruct implementuje rozhraní MyInterface.
Příklad:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implementace
}
// Kontrola implementace rozhraní
var _ MyInterface = (*MyStruct)(nil)
Tímto způsobem v jazyce Go není nutné explicitně uvádět implementaci rozhraní — stačí implementovat všechny jeho metody.