Go

Reflection

package reflect, ispezione dei tipi, manipolazione dei valori, struct tags, casi d'uso, prestazioni

20 domande da colloquio·
Senior
1

Cos'è il package reflect in Go?

Risposta

Il package reflect consente di ispezionare e manipolare tipi e valori a runtime. È usato per implementare librerie generiche (marshaling JSON, ORM), ma il suo uso diretto nel codice applicativo è sconsigliato perché sacrifica la sicurezza dei tipi e le prestazioni.

2

Come ottenere il tipo di una variabile con il package reflect?

Risposta

La funzione reflect.TypeOf() restituisce un reflect.Type che rappresenta il tipo dinamico dell'interfaccia passata come argomento. Se la variabile è nil, reflect.TypeOf() restituisce nil. Usare .Kind() sul Type restituito consente di ottenere la categoria del tipo (int, string, struct, ecc.).

3

Qual è la differenza tra reflect.Type e reflect.Value?

Risposta

reflect.Type rappresenta i metadati del tipo (nome, kind, metodi, campi) e si ottiene tramite reflect.TypeOf(). reflect.Value rappresenta il valore concreto e ne consente la lettura o la modifica tramite reflect.ValueOf(). I due sono complementari: Type descrive 'cosa' e Value contiene 'il dato'.

4

Come modificare il valore di una variabile tramite reflection?

5

Cos'è un reflect.Kind?

+17 domande da colloquio

Padroneggia Go per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis