
Reflection
pakiet reflect, inspekcja typów, manipulacja wartościami, struct tags, przypadki użycia, wydajność
1Czym jest pakiet reflect w Go?
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ść.
2Jak uzyskać typ zmiennej za pomocą pakietu reflect?
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.).
3Jaka jest różnica między reflect.Type a reflect.Value?
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'.
Jak zmodyfikować wartość zmiennej za pomocą reflection?
Czym jest reflect.Kind?
+17 pytań z rozmów
Inne tematy rekrutacyjne Go
Podstawy Go
Struktury danych w Go
Interfejsy w Go
Obsługa błędów
Podstawy goroutines
Channels
Go Modules
Serwer HTTP
Klient HTTP
Kodowanie JSON
Database/SQL
Pakiet context
Testing
Wzorce współbieżności
Prymitywy synchronizacji
Frameworki webowe Go
Projektowanie API REST
gRPC
Zarządzanie pamięcią
Optymalizacja wydajności
Generics
Go Design Patterns
Microservices
Bezpieczeństwo i uwierzytelnianie
Docker & Containerization
Kubernetes Basics
Zaawansowany Go
Tworzenie CLI
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