Junior — Middle
Go dilində irs mexanizmini həyata keçirmək mümkündürmü?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində klassik irsi yoxdur, Java və ya C++ kimi obyekt yönümlü dillərdə olduğu kimi. Əvəzinə, Go kodun təkrar istifadəsi və funksionallığın genişləndirilməsi üçün strukturların kompozisiyası və embedding (yığım) istifadə edir.
Məsələn, bir strukturu digərinə daxil etmək olar və daxil edilmiş strukturun metodları xarici struktur vasitəsilə əlçatan olur:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "danışır")
}
type Dog struct {
Animal // Animal strukturunun daxil edilməsi
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // Animal strukturunun Speak metodunu çağırır
}
Beləliklə, Go-da irsiyə bənzər davranış əldə edilir, lakin bu kompozisiya vasitəsilə həyata keçirilir və daha çevik və sadə dizaynı təşviq edir.