Middle
Goда мурасимдикти имитациялоо үчүн интеграцияланган түзүмдөрдү кантип колдонсо болот?
sobes.tech AI
AIден жооп
Go тилинде классикалык мурасчылык жок, объект-бакайган тилдердей, бирок ички түзүмдөрдү (embedding) колдонуп мурасчылыкты имитациялоо мүмкүн. Бул бир түзүмдү башкасына кошуу аркылуу, талаанын атын көрсөтпөстөн, ички түзүмдүн ыкмаларын "мурас кылууга" мүмкүндүк берет.
Мисал:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "айтуу")
}
type Dog struct {
Animal // ички түзүм
Breed string
}
func main() {
d := Dog{
Animal: Animal{Name: "Bobby"},
Breed: "Иттер",
}
d.Speak() // Animal ыкмасын Dog аркылуу чакыруу
}
Ушул жол менен, Dog "Animal" ыкмаларын мурас кылып алат жана түздөн-түз колдоно алат.