Junior — Middle
Hogyan lehet meghatározni, hogy egy adott struktúra megvalósítja-e a megadott interfészt?
sobes.tech MI
Válasz az MI-től
A Go nyelvben az interfész megvalósítása implicit módon történik: ha egy típus tartalmazza az összes, az interfészben deklarált metódust, akkor automatikusan megvalósítja ezt az interfészt.
Annak meghatározására, hogy egy struktúra megvalósítja-e a megadott interfészt, lehet:
- Megpróbálja hozzárendelni a struktúra példányát egy interfész típusú változóhoz — ha a fordítás sikeres, akkor a struktúra megvalósítja az interfészt.
- Statikus ellenőrzést végezhet _var _ segítségével:
var _ MyInterface = (*MyStruct)(nil)
Ha ez a kód hibamentesen fordul, akkor a MyStruct megvalósítja a MyInterface interfészt.
Példa:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implementáció
}
// Interfész megvalósításának ellenőrzése
var _ MyInterface = (*MyStruct)(nil)
Így Go nyelvben nem szükséges kifejezetten megadni az interfész megvalósítását — elegendő, ha minden metódusát megvalósítja.