Go

Reflection

paquete reflect, inspección de tipos, manipulación de valores, struct tags, casos de uso, rendimiento

20 preguntas de entrevista·
Senior
1

¿Qué es el paquete reflect en Go?

Respuesta

El paquete reflect permite inspeccionar y manipular tipos y valores en tiempo de ejecución (runtime). Se usa para implementar bibliotecas genéricas (marshaling JSON, ORM), pero su uso directo en el código de aplicación se desaconseja porque sacrifica la seguridad de tipos y el rendimiento.

2

¿Cómo obtener el tipo de una variable con el paquete reflect?

Respuesta

La función reflect.TypeOf() devuelve un reflect.Type que representa el tipo dinámico de la interfaz pasada como argumento. Si la variable es nil, reflect.TypeOf() devuelve nil. Usar .Kind() sobre el Type devuelto permite obtener la categoría del tipo (int, string, struct, etc.).

3

¿Cuál es la diferencia entre reflect.Type y reflect.Value?

Respuesta

reflect.Type representa los metadatos del tipo (nombre, kind, métodos, campos) y se obtiene mediante reflect.TypeOf(). reflect.Value representa el valor concreto y permite leerlo o modificarlo mediante reflect.ValueOf(). Ambos son complementarios: Type describe 'qué' y Value contiene 'el dato'.

4

¿Cómo modificar el valor de una variable mediante reflection?

5

¿Qué es un reflect.Kind?

+17 preguntas de entrevista

Domina Go para tu próxima entrevista

Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.

Empieza gratis