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.