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