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.