Junior — Middle
Оё имкон дорад механизмҳои меросро дар забони Go амалӣ кардан мумкин аст?
sobes.tech AI
Ҷавоб аз AI
Дар забони Go вуҷуд надорад меросхӯрии классикӣ, ҳамчун дар забонҳои объектӣ-ба равишҳои Java ё C++. Ба ҷои ин, Go истифодаи композитсия ва embedding (гусастани) структураҳоро барои такрори истифодаи коди ва васеъ кардани функсионалият истифода мебарад.
Масалан, шумо метавонед як структураро дар дигар ҷойгир кунед, ва методҳои структураи даргусастаро тавассути структураи беруна дастрас кардан мумкин аст:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "мегӯяд")
}
type Dog struct {
Animal // даргусастани структураи Animal
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // ба методи Speak структураи Animal даъват мекунад
}
Тавре, ки дар Go ба даст оварда мешавад, рафторе, ки монанд ба меросхӯрӣ аст, аммо тавассути композитсия амалӣ мешавад, ки тарҳи бештар флексибл ва соддаро ташвиқ мекунад.