Cosa sono gli struct tag
Associare metadati ai campi
Cosa sono gli struct tag è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Che cosa sono i tag di struct
Un tag di struct è una stringa di metadati associata a un campo di una struct. Non influisce sul valore del campo, ma contiene istruzioni per le librerie che lo leggono.
Sintassi dei tag
I tag compaiono dopo il tipo del campo, racchiusi tra virgolette di stringa raw. Ogni tag è una coppia key:"value". Più coppie sono separate da spazi.
Un tag tipico ha questo aspetto: json:"name".
Una struct con tag
Qui un campo contiene un tag json che indica agli encoder di usare il nome della chiave in minuscolo.
package main
import "fmt"
type User struct {
Name string "json:\"name\""
}
func main() {
u := User{Name: "Ann"}
fmt.Println(u.Name)
}I tag sono solo metadati
I tag non modificano il modo in cui il codice usa il campo. u.Name continua a funzionare normalmente. I tag sono rilevanti solo per le librerie che li analizzano tramite reflection.
Più tag per un campo
Un singolo campo può contenere diverse chiavi di tag, ciascuna usata da una libreria diversa.
package main
import "fmt"
type Product struct {
Name string "json:\"name\" db:\"product_name\""
}
func main() {
p := Product{Name: "Pen"}
fmt.Println(p.Name)
}Chiavi di tag comuni
Tra le chiavi di tag usate più frequentemente ci sono:
json- codifica JSONxml- codifica XMLdb- mappatura delle colonne del databasevalidate- regole di validazione
Leggere i tag tramite reflection
Il package reflect consente di leggere i tag durante l'esecuzione. field.Tag.Get("json") restituisce il valore della chiave json.
package main
import (
"fmt"
"reflect"
)
type User struct {
Name string "json:\"name\""
}
func main() {
t := reflect.TypeOf(User{})
f := t.Field(0)
fmt.Println(f.Tag.Get("json"))
}Il metodo Tag.Get
Tag.Get(key) restituisce il valore di una chiave oppure una stringa vuota se la chiave è assente. Anche Tag.Lookup(key) indica se la chiave esisteva.
package main
import (
"fmt"
"reflect"
)
type User struct {
Name string "json:\"name\""
}
func main() {
f := reflect.TypeOf(User{}).Field(0)
val, ok := f.Tag.Lookup("json")
fmt.Println(val, ok)
}Convenzione per il formato dei tag
Il formato standard dei tag è key:"value", senza spazi intorno ai due punti. Le librerie si aspettano questa convenzione. I tag malformati potrebbero essere ignorati senza segnalazioni.
Perché usare i tag
I tag consentono di mantenere le regole di mappatura accanto ai campi che descrivono, invece di inserirle in una configurazione separata. Una struct può servire per l'output JSON, le righe del database e la validazione, tutto tramite i tag.
Tag nei campi non esportati
I tag dei campi non esportati, cioè con nome in minuscolo, sono visibili tramite reflection, ma la maggior parte degli encoder ignora completamente i campi non esportati. Mantenga esportati, cioè con iniziale maiuscola, i campi che desidera serializzare.
Verifica rapida
Qual è lo scopo di un tag di struct?
Riepilogo
Tag di struct:
- Metadati associati ai campi nel formato
key:"value" - Non influenzano il codice normale; vengono letti tramite reflection
- Usati da json, xml, db, validate e altri strumenti
Domande Frequenti
La lezione «Cosa sono gli struct tag» è gratuita?
Sì — il testo completo di «Cosa sono gli struct tag» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Cosa sono gli struct tag»?
Associare metadati ai campi Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Cosa sono gli struct tag»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Cosa sono gli struct tag
- Tag JSON
- Librerie di validazione
- Parsing personalizzato dei tag