Junior — Middle
Proqramlaşdırma dilində metodları olmayan struktur və interfeys arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, struktur (struct) müəyyən bir məlumat növüdür və bir sıra sahələrdən (dəyişənlərdən) ibarətdir. Bu, məlumatların necə təşkil olunduğunu təsvir edir, amma özü davranışa malik deyil.
İnterfeys (interface) Go-da, bu interfeysə uyğun gəlməsi üçün bir növün həyata keçirməli olduğu metodlar toplusunu təsvir edir. İnterfeys məlumatları ehtiva etmir, yalnız metodların imzalarını ehtiva edir.
Əsas fərqlər:
- Struktur: sahələrə malik konkret həyata keçirmə.
- İnterfeys: metodlar vasitəsilə davranışı təsvir edən abstraksiya.
- Struktur, uyğun metodlara malikdirsə, bir və ya bir neçə interfeysi həyata keçirə bilər.
Nümunə:
// Metodlar olmadan struktur
type User struct {
Name string
Age int
}
// Metodlu interfeys
type Greeter interface {
Greet() string
}
// İnterfeysi həyata keçirmə
func (u User) Greet() string {
return "Hello, " + u.Name
}
Burada, User sahələrə malik strukturdür və Greeter davranışı təsvir edən interfeysdir. Greet metodu olmadan, User strukturu Greeter interfeysini həyata keçirmir.