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

  1. Încerca să atribui o instanță a structurii unei variabile de tip interfață — dacă compilarea reușește, înseamnă că structura implementează interfața.
  2. 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.