Go

Reflection

пакет reflect, інспекція типів, маніпуляція значеннями, struct tags, сценарії використання, продуктивність

20 питань зі співбесід·
Senior
1

Що таке пакет reflect у Go?

Відповідь

Пакет reflect дозволяє інспектувати та маніпулювати типами й значеннями під час виконання (runtime). Він використовується для реалізації узагальнених бібліотек (JSON-маршалінг, ORM), але його пряме використання в коді застосунку не рекомендується, оскільки воно жертвує безпекою типів і продуктивністю.

2

Як отримати тип змінної за допомогою пакета reflect?

Відповідь

Функція reflect.TypeOf() повертає reflect.Type, що представляє динамічний тип інтерфейсу, переданого як аргумент. Якщо змінна дорівнює nil, reflect.TypeOf() повертає nil. Використання .Kind() на поверненому Type дозволяє отримати категорію типу (int, string, struct тощо).

3

Яка різниця між reflect.Type та reflect.Value?

Відповідь

reflect.Type представляє метадані типу (ім'я, kind, методи, поля) і отримується через reflect.TypeOf(). reflect.Value представляє конкретне значення та дозволяє читати або змінювати його через reflect.ValueOf(). Обидва доповнюють одне одного: Type описує 'що', а Value містить 'дані'.

4

Як змінити значення змінної за допомогою reflection?

5

Що таке reflect.Kind?

+17 питань зі співбесід

Опануй Go для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно