tgoop.com/go_interview_lib/320
Create:
Last Update:
Last Update:
💬 Какие особенности необходимо учитывать при встраивании типов в Go?
В Go поле структуры называется встроенным, если оно объявлено без имени. Например,
type Foo struct {
Bar // Встроенное поле
}
type Bar struct {
Baz int
}
В структуре
Foo
тип Bar
объявлен без связанного с ним имени; следовательно, это встроенное поле.Поскольку
Bar
содержит поле Baz
, это поле «продвигается» в Foo
. Таким образом, Baz
становится доступным из Foo
.📌 Основные особенности, которые необходимо учитывать:
1. Встраивание типов не должно использоваться только как синтаксический сахар для упрощения доступа к полю (например,
Foo.Baz()
вместо Foo.Bar.Baz()
).2. Встраивание типов не должно «продвигать» данные (поля) или поведение (методы), которые мы хотим скрыть от внешнего мира: например, если это позволяет клиентам получить доступ к поведению блокировки, которое должно оставаться приватным для структуры.
BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/320