Go

Reflection

pakiet reflect, inspekcja typów, manipulacja wartościami, struct tags, przypadki użycia, wydajność

20 pytań z rozmów·
Senior
1

Czym jest pakiet reflect w Go?

Odpowiedź

Pakiet reflect umożliwia inspekcję i manipulację typami oraz wartościami w czasie wykonania (runtime). Jest używany do implementacji generycznych bibliotek (marshaling JSON, ORM), ale jego bezpośrednie użycie w kodzie aplikacji jest odradzane, ponieważ poświęca bezpieczeństwo typów i wydajność.

2

Jak uzyskać typ zmiennej za pomocą pakietu reflect?

Odpowiedź

Funkcja reflect.TypeOf() zwraca reflect.Type reprezentujący dynamiczny typ interfejsu przekazanego jako argument. Jeśli zmienna jest nil, reflect.TypeOf() zwraca nil. Użycie .Kind() na zwróconym Type pozwala uzyskać kategorię typu (int, string, struct itd.).

3

Jaka jest różnica między reflect.Type a reflect.Value?

Odpowiedź

reflect.Type reprezentuje metadane typu (nazwę, kind, metody, pola) i jest uzyskiwany przez reflect.TypeOf(). reflect.Value reprezentuje konkretną wartość i pozwala ją odczytać lub zmodyfikować przez reflect.ValueOf(). Oba się uzupełniają: Type opisuje 'co', a Value zawiera 'dane'.

4

Jak zmodyfikować wartość zmiennej za pomocą reflection?

5

Czym jest reflect.Kind?

+17 pytań z rozmów

Opanuj Go na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo