Вопрос: Что такое embedding (встраивание) и чем оно отличается от наследования?
Go
Junior
Без компании
Вопрос: Что такое embedding (встраивание) и чем оно отличается от наследования?
Ответы
Embedding — композиция: вы встраиваете тип, получая "продвижение" его полей/методов. Это не наследование, нет переопределения как в OOP.
```go
package main
import "fmt"
type Logger struct{}
func (Logger) Log(msg string) { fmt.Println("LOG:", msg) }
type Service struct {
Logger // embedded
Name string
}
func main() {
s := Service{Name: "api"}
s.Log("started") // метод продвинут
}
```