Sobes.tech
Junior — Middle

Milyen módon lehet ellenőrizni, hogy a szerkezet megfelel-e a megadott interfésznek?

sobes.tech MI

Válasz az MI-től

A Go-ban a struktúra megfelelőségének ellenőrzése implicit módon történik — ha a struktúra megvalósítja az összes metódust az interfészen, akkor megfelel neki.

A világos ellenőrzéshez fordítási időben gyakran használják az fordítási ellenőrzést hozzárendeléssel:

type MyInterface interface {
    DoSomething()
}

type MyStruct struct {}

func (m MyStruct) DoSomething() {}

// Fordítási ellenőrzés
var _ MyInterface = (*MyStruct)(nil)

Ha a MyStruct nem valósítja meg a MyInterface-t, a fordító hibát ad. Ez egy kényelmes módja annak, hogy megbizonyosodjunk arról, hogy a struktúra megfelel az interfésznek anélkül, hogy futtatnánk a programot.