Middle
Go'da meroslikni taqlid qilish uchun qanday qilib integratsiyalashgan tuzilmalarni ishlatish mumkin?
sobes.tech AI
AIdan javob
Go tilida ob'ektga yo'naltirilgan tillardagi kabi an'anaviy merosxo'rlik yo'q, lekin ichki tuzilmalardan (embedding) foydalanib, merosxo'rlikni taqlid qilish mumkin. Bu, bir tuzilmani boshqa tuzilma ichiga nomini ko'rsatmasdan kiritish orqali amalga oshiriladi va bu "meros olish" imkonini beradi.
Misol:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "aytadi")
}
type Dog struct {
Animal // ichki tuzilma
Breed string
}
func main() {
d := Dog{
Animal: Animal{Name: "Bobby"},
Breed: "Ovtcharka",
}
d.Speak() // Animal metodini Dog orqali chaqirish
}
Shu tarzda, Dog "Animal" metodlarini meros qilib oladi va ularni to'g'ridan-to'g'ri ishlata oladi.