Sobes.tech
Junior — Middle

Miras prensibini ve Go dilinde nasıl uygulandığını açıklayabilir misiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde, diğer nesne yönelimli dillerdeki gibi klasik kalıtım yoktur. Bunun yerine, Go bileşim ve gömme (embedding) kullanır; bu, kodun yeniden kullanılmasını ve işlevselliğin genişletilmesini sağlar.

Gömme (embedding), bir tipi (yapıyı) başka bir içine dahil etmeye olanak tanır ve gömülü tipin metodları, dış tip tarafından erişilebilir hale gelir; bu, kalıtıma benzer.

Örnek:

type Animal struct {
    Name string
}

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

// Animal'ı Dog içine gömüyoruz

type Dog struct {
    Animal
}

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

func main() {
    dog := Dog{Animal{Name: "Buddy"}}
    fmt.Println(dog.Name)       // Animal alanına erişim
    fmt.Println(dog.Speak())    // Yeniden tanımlanmış metod
}

Bu şekilde, Go, bileşim ve gömme yoluyla kalıtsal bir etki elde eder ve klasik hiyerarşinin karmaşıklıklarından kaçınır.