Sobes.tech
Junior — Middle

Care este legătura dintre o interfață goală și o interfață obișnuită în programare?

sobes.tech AI

Răspuns de la AI

În Go, interfața goală interface{} este o interfață care nu conține nicio metodă. Poate stoca o valoare de orice tip, deoarece toate tipurile implementează implicit interfața goală. O interfață normală, în schimb, definește un set de metode pe care un tip trebuie să le implementeze pentru a corespunde acestei interfețe.

Astfel, relația dintre interfața goală și cea normală în Go constă în faptul că interfața goală este un container universal pentru valori de orice tip, în timp ce interfața normală stabilește un contract pe care tipurile specifice trebuie să îl respecte. Interfața goală este adesea folosită pentru a stoca și transmite date fără un tip specific, în timp ce interfețele normale sunt folosite pentru a defini comportamentul obiectelor.

Exemplu:

var any interface{} = 42 // interfața goală poate stoca orice valoare

// Interfață normală
type Reader interface {
    Read(p []byte) (n int, err error)
}

// Tip care implementează Reader
type File struct {}
func (f File) Read(p []byte) (int, error) {
    // implementare
    return 0, nil
}

var r Reader = File{} // File implementează interfața Reader