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

  1. 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.
  2. 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.