Избегание утверждений типа при обработке интерфейса
При работе с интерфейсами в Go может стать утомительно выполнять утверждения типа несколько раз, особенно когда интерфейс используется в различных местах внутри функции. Эта проблема ставит вопрос о том, есть ли способ один раз создать переменную нужного типа и использовать ее во всей функции.
Статически типизированный характер Go и отсутствие дженериков делают невозможным прямую реализацию желаемого решение. Однако существуют альтернативные подходы:
1. Абстракция через интерфейс:
Разработайте интерфейс, который инкапсулирует общие функции, которые вы хотите применить к различным структурам. Реализуйте этот интерфейс в своих конкретных типах. Присвоение переменной этого типа интерфейса данным устраняет необходимость в утверждениях типов или переключателях.
2. Отражение:
Используйте отражение для доступа к общим полям, идентифицируемым по их именам. Хотя это не дает никаких гарантий во время компиляции, оно позволяет вам динамически взаимодействовать с полями. В качестве примера обратитесь к следующему вопросу: «Утвердить тип интерфейса».
Примечание: Реализация интерфейсного подхода более эффективна и приводит к более чистому коду. Тем не менее, в определенных сценариях размышление остается потенциальным вариантом.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3