Junior — Middle
Go tilida merosxo'rlik mexanizmini amalga oshirish mumkinmi?
sobes.tech AI
AIdan javob
Go tilida an'anaviy merosxo'rlik mavjud emas, Java yoki C++ kabi ob'ektga yo'naltirilgan tillardagi kabi. O'rniga, Go kodni qayta ishlash va funksionallikni kengaytirish uchun tuzilmalarni kompozitsiya va embedding (joylashtirish) usullaridan foydalanadi.
Masalan, bir tuzilmani boshqasiga joylashtirish mumkin, va joylashtirilgan tuzilmaning metodlari tashqi tuzilmadan foydalanib mavjud bo'ladi:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "aytadi")
}
type Dog struct {
Animal // Animal tuzilmasini joylashtirish
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // Animal tuzilmasining Speak metodini chaqiradi
}
Shu tarzda, Go da merosxo'rlikka o'xshash xulq-atvor erishiladi, ammo bu kompozitsiya orqali amalga oshiriladi, bu esa yanada moslashuvchan va sodda dizaynni rag'batlantiradi.