Sobes.tech
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.