Junior — Middle
Cum se poate determina dacă o anumită structură implementează o interfață dată?
sobes.tech AI
Răspuns de la AI
În Go, implementarea unei interfețe este verificată implicit: dacă un tip conține toate metodele declarate în interfață, acesta implementează automat acea interfață.
Pentru a determina dacă o structură implementează o interfață dată, poți:
- Încerca să atribui o instanță a structurii unei variabile de tip interfață — dacă compilarea reușește, înseamnă că structura implementează interfața.
- Să folosești o verificare statică cu _var _:
var _ MyInterface = (*MyStruct)(nil)
Dacă acest cod compilează fără erori, înseamnă că MyStruct implementează interfața MyInterface.
Exemplu:
type MyInterface interface {
DoSomething()
}
type MyStruct struct {}
func (m *MyStruct) DoSomething() {
// implementare
}
// Verificare implementare interfață
var _ MyInterface = (*MyStruct)(nil)
Astfel, în Go, nu este necesar să indicăm explicit implementarea unei interfețe — este suficient să implementăm toate metodele sale.