Встроенные структуры в Go
Gary Clarke
0:00 / 0:00
Встроенные структуры в Go
190 просмотров · 5 месяцев назад
Gary Clarke
20 тыс. подписчиков
190 просмотров · 5 месяцев назад
Встроенные структуры в Go позволяют компоновать типы и повторно использовать поля или методы без наследования. В этом уроке по Go вы узнаете, как работает встраивание структур, что такое продвигаемые поля и методы, и чем встраивание отличается от использования именованного поля.
Что вы узнаете:
Что такое встраивание структур и как оно включает одну структуру в другую без имени поля
Как продвигаемые поля позволяют получать доступ к внутренним данным непосредственно из внешней структуры
Разница между встраиванием и использованием именованного поля
Как методы встроенного типа продвигаются во внешний тип
Когда встраивание повышает ясность, а когда лучше использовать явные именованные поля
Концептуальное объяснение:
При встраивании структуры Go продвигает её экспортируемые поля и методы во внешнюю структуру. Это означает, что вы можете получить доступ к user.City вместо user.Address.City, и вы можете вызвать продвигаемый метод, например user.Full, если он определен во встроенном типе. Это композиция: вы строите большие типы из меньших частей. Если вы используете именованное поле, доступ остается явным через это поле, что может быть понятнее, когда связь не является центральной.
Применение:
Встраивание структур — распространенный способ моделирования реальных связей в типах Go, сохраняющий при этом читаемость кода. Это помогает, когда тип является естественной частью другого типа, и вам нужен лаконичный доступ. Именованные поля по-прежнему важны, когда вам нужна более четкая дифференциация. Понимание обоих шаблонов помогает проектировать более чистые модели данных.
Ключевые выводы:
Встраивание включает одну структуру в другую без имени поля
Встроенные экспортируемые поля и методы переносятся во внешнюю структуру
user.City — это перенос доступа; user.Address.City — это явный доступ через именованное поле
Встраивание — это композиция, а не наследование
Выбирайте встраивание или именованные поля в зависимости от ясности связи
Перед проверкой решения попробуйте выполнить задание из видео.
Ссылки:
Папка с уроками на GitHub: https://github.com/GaryClarke/go-byte...
Создайте свое первое приложение на Go вместе со мной: https://www.garyclarke.tech/p/build-y...
Подпишитесь на рассылку, чтобы получать новые уроки и ресурсы: https://content.garyclarke.tech/go-by...
Подписывайтесь на нас в Twitter: / garyclarketech
Свяжитесь с нами в LinkedIn: / garyclarketech
Подпишитесь на канал, чтобы получать больше уроков по Go.
#golang #go #programming #coding #learnprogramming #gobytes