Back to questions
VK
Middle
7
Как можно использовать встроенные структуры для имитации наследования в Go?
Companies where asked
Answer from AI
sobes.tech 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: "Бобик"},
Breed: "Овчарка",
}
d.Speak() // вызов метода Animal через Dog
}
Таким образом, Dog "унаследует" методы Animal и может использовать их напрямую.