Middle
Go-da irsiyyətin təqlid olunması üçün daxili strukturlardan necə istifadə etmək olar? Bu nə verir və nə üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində obyekt yönümlü dillərdəki kimi klassik irsiyyət yoxdur, lakin daxil edilmiş strukturlar (embedding) onu təqlid etməyə imkan verir.
Bir struktur başqa birini adı olmayan sahə kimi daxil etdikdə, daxil edilmiş strukturun metodları xarici struktur üçün əlçatan olur, bu da irsiyyətə bənzəyir.
Bu aşağıdakıları təmin edir:
- Kodun təkrar istifadəsi
- İrsi yerinə tərkib
- Daxil edilmiş strukturun davranışını genişləndirmək imkanı
Nümunə:
type Animal struct {
Name string
}
func (a Animal) Speak() string {
return "..."
}
// Animal-ı Dog-a daxil edirik
type Dog struct {
Animal
}
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
d := Dog{Animal{Name: "Buddy"}}
fmt.Println(d.Name) // Animal sahəsinə giriş
fmt.Println(d.Speak()) // Overridden metodu çağırır
}
Sadə tiplər əsasında daha mürəkkəb tiplər yaratmaq üçün istifadə olunur, sərt sinif irsiyyətinə malik olmayan.