Middle
Чӣ тавр метавон структураҳои дарунсохтро дар Go барои имитацияи мерос истифода бурд? Ин чӣ медиҳад ва барои чӣ истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Дар Го вуҷуд надорад наслеҳии классикӣ ҳамчун дар забонҳои объектӣ-ориентатсионӣ, аммо структураҳои дарунсохт (embedding) имкон медиҳанд, ки онро имитатсия кунанд.
Вақте ки як структура дигарро ҳамчун майдони бе ном дохил мекунад, усулҳои структураи дарунсохт барои структураи беруна дастрас мешаванд, ки ба насле монанд аст.
Ин пешниҳод мекунад:
- Истифодаи такрории коди
- Тасниф ба ҷои насле
- Имконият барои васеъ кардани рафтории структураи дарунсохт
Масалан:
type Animal struct {
Name string
}
func (a Animal) Speak() string {
return "..."
}
// Animal-ро дар Dog дохил мекунем
type Dog struct {
Animal
}
func (d Dog) Speak() string {
return "Woof!"
}
func main() {
d := Dog{Animal{Name: "Buddy"}}
fmt.Println(d.Name) // дастрасӣ ба майдони Animal
fmt.Println(d.Speak()) // фароидани усули баробаршуда
}
Ин барои эҷоди намудҳои мураккабтар бар асоси намудҳои содда истифода мешавад, бидуни ҳиерархияи қатъии синфҳо.