Sobes.tech
Middle

Go'da gömülü yapıları kalıtımı taklit etmek için nasıl kullanabiliriz? Bu ne sağlar ve ne amaçla kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Go dilinde nesne yönelimli dillerdeki gibi klasik kalıtım yoktur, ancak gömme (embedding) yapıları bunu taklit etmeye olanak tanır.

Bir yapı, başka birini isimsiz bir alan olarak içerdiğinde, gömülü yapının metodları dış yapı tarafından erişilebilir hale gelir, bu da kalıtıma benzer.

Bu şu avantajları sağlar:

  • Kodun yeniden kullanımı
  • Kalıtım yerine bileşim
  • Gömülü yapının davranışını genişletme imkanı

Örnek:

type Animal struct {
    Name string
}

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

// Animal'ı Dog'a gömüyoruz
type Dog struct {
    Animal
}

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

func main() {
    d := Dog{Animal{Name: "Buddy"}}
    fmt.Println(d.Name)      // Animal alanına erişim
    fmt.Println(d.Speak())   // yeniden tanımlanmış yöntemi çağırma
}

Basit türler temel alınarak daha karmaşık türler oluşturmak için kullanılır, katı bir sınıf hiyerarşisi olmadan.