Middle+
Cos'è il pacchetto reflect in Go? A cosa serve?
sobes.tech AI
Risposta dell'AI
Il pacchetto reflect in Go fornisce funzionalità per lavorare con tipi e valori durante l'esecuzione (runtime). Permette di esplorare e modificare dinamicamente gli oggetti, ottenere informazioni sui tipi, campi delle strutture, metodi e invocarli.
Questo è utile quando i tipi di dati sono sconosciuti in anticipo o quando si devono implementare funzioni universali, ad esempio serializzazione, ORM, test o librerie che lavorano con diversi tipi.
Esempio di utilizzo di reflect per ottenere il nome del tipo e il valore di una variabile:
package main
import (
"fmt"
"reflect"
)
func main() {
var x float64 = 3.14
v := reflect.ValueOf(x)
t := reflect.TypeOf(x)
fmt.Printf("Tipo: %s, Valore: %v\n", t, v)
}
Qui otteniamo il tipo e il valore della variabile x durante l'esecuzione.