Junior — Middle
Care este diferența dintre o structură fără metode și o interfață într-un limbaj de programare?
sobes.tech AI
Răspuns de la AI
În Go, o structură (struct) este un tip de date concret care conține un set de câmpuri (variabile). Ea descrie modul în care sunt organizate datele, dar nu conține comportament în sine.
Interfața (interface) în Go descrie un set de metode pe care un tip trebuie să le implementeze pentru a corespunde acestei interfețe. Interfața nu conține date, ci doar semnăturile metodelor.
Diferențele principale:
- Structură: este o implementare concretă cu câmpuri.
- Interfață: o abstracție care descrie comportamentul prin metode.
- O structură poate implementa una sau mai multe interfețe dacă are metodele corespunzătoare.
Exemplu:
// Structură fără metode
type User struct {
Name string
Age int
}
// Interfață cu metodă
type Greeter interface {
Greet() string
}
// Implementarea interfeței
func (u User) Greet() string {
return "Hello, " + u.Name
}
Aici, User este o structură cu câmpuri, iar Greeter este o interfață care descrie comportamentul. Fără metoda Greet, structura User nu implementează interfața Greeter.