Перейти к содержимому

Встроенные структуры в 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