Sobes.tech
Junior — Middle

Miras prinsibini və onun Go dilində necə həyata keçirildiyini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində digər obyekt yönümlü dillərdə olduğu kimi klassik irsi yoxdur. Əvəzinə, Go kompozisiyaembedding istifadə edir; bu, kodun təkrar istifadəsini və funksionallığın genişləndirilməsini təmin edir.

Embedding bir tipi (struktur) başqa birinin içində daxil etməyə imkan verir və daxil edilmiş tipin metodları xarici tip üçün əlçatan olur, bu da irsə bənzəyir.

Misal:

type Animal struct {
    Name string
}

func (a Animal) Speak() string {
    return "..."
}

// Animal-ı Dog-ə daxil edirik

type Dog struct {
    Animal
}

func (d Dog) Speak() string {
    return "Hav!"
}

func main() {
    dog := Dog{Animal{Name: "Buddy"}}
    fmt.Println(dog.Name)       // Animal sahəsinə giriş
    fmt.Println(dog.Speak())    // Yenidən təyin olunmuş metod
}

Beləliklə, Go kompozisiya və embedding vasitəsilə irsə bənzər təsir əldə edir və klassik hierarxiyanın mürəkkəbliyindən qaçır.