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 и може да ги използва директно.