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 kompozisiya və embedding 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.