
Reflection
пакет reflect, інспекція типів, маніпуляція значеннями, struct tags, сценарії використання, продуктивність
1Що таке пакет reflect у Go?
Що таке пакет reflect у Go?
Відповідь
Пакет reflect дозволяє інспектувати та маніпулювати типами й значеннями під час виконання (runtime). Він використовується для реалізації узагальнених бібліотек (JSON-маршалінг, ORM), але його пряме використання в коді застосунку не рекомендується, оскільки воно жертвує безпекою типів і продуктивністю.
2Як отримати тип змінної за допомогою пакета reflect?
Як отримати тип змінної за допомогою пакета reflect?
Відповідь
Функція reflect.TypeOf() повертає reflect.Type, що представляє динамічний тип інтерфейсу, переданого як аргумент. Якщо змінна дорівнює nil, reflect.TypeOf() повертає nil. Використання .Kind() на поверненому Type дозволяє отримати категорію типу (int, string, struct тощо).
3Яка різниця між reflect.Type та reflect.Value?
Яка різниця між reflect.Type та reflect.Value?
Відповідь
reflect.Type представляє метадані типу (ім'я, kind, методи, поля) і отримується через reflect.TypeOf(). reflect.Value представляє конкретне значення та дозволяє читати або змінювати його через reflect.ValueOf(). Обидва доповнюють одне одного: Type описує 'що', а Value містить 'дані'.
Як змінити значення змінної за допомогою reflection?
Що таке reflect.Kind?
+17 питань зі співбесід
Інші теми співбесід Go
Основи Go
Структури даних Go
Інтерфейси Go
Обробка помилок
Основи goroutines
Channels
Go Modules
HTTP-сервер
HTTP-клієнт
Кодування JSON
Database/SQL
Пакет context
Testing
Патерни конкурентності
Примітиви синхронізації
Веб-фреймворки Go
Проєктування REST API
gRPC
Керування пам'яттю
Оптимізація продуктивності
Generics
Go Design Patterns
Microservices
Безпека та автентифікація
Docker & Containerization
Kubernetes Basics
Просунутий Go
Розробка CLI
Опануй Go для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно