Go

Reflection

reflect-Paket, Typinspektion, Wertmanipulation, struct tags, Anwendungsfälle, Performance

20 Interview-Fragen·
Senior
1

Was ist das reflect-Paket in Go?

Antwort

Das reflect-Paket ermöglicht das Inspizieren und Manipulieren von Typen und Werten zur Laufzeit. Es wird zur Implementierung generischer Bibliotheken (JSON-Marshaling, ORM) verwendet, aber seine direkte Nutzung im Anwendungscode wird abgeraten, da sie Typsicherheit und Performance opfert.

2

Wie erhält man den Typ einer Variable mit dem reflect-Paket?

Antwort

Die Funktion reflect.TypeOf() gibt einen reflect.Type zurück, der den dynamischen Typ des als Argument übergebenen Interfaces darstellt. Ist die Variable nil, gibt reflect.TypeOf() nil zurück. Mit .Kind() auf dem zurückgegebenen Type lässt sich die Typkategorie (int, string, struct usw.) ermitteln.

3

Was ist der Unterschied zwischen reflect.Type und reflect.Value?

Antwort

reflect.Type repräsentiert die Typmetadaten (Name, Kind, Methoden, Felder) und wird über reflect.TypeOf() ermittelt. reflect.Value repräsentiert den konkreten Wert und erlaubt dessen Lesen oder Ändern über reflect.ValueOf(). Beide ergänzen sich: Type beschreibt das 'Was' und Value enthält 'die Daten'.

4

Wie ändert man den Wert einer Variable über Reflection?

5

Was ist ein reflect.Kind?

+17 Interview-Fragen

Meistere Go für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten