Tag della struttura Golang

Tag della struttura Golang
Una struttura si riferisce a un'entità nominata con campi, ciascuno con il suo nome e tipo. Le strutture sono utili quando è necessario definire tipi personalizzati.

Di seguito è riportato un esempio di una struttura nel programma GO:

Digita utente struct
id int
Nome String
età int

L'esempio precedente mostra una struttura esplicita in cui i campi appartengono a quella struttura specifica.

Puoi anche dichiarare una struttura implicita in cui i campi sono dichiarati in un'altra struttura. Questi sono anche noti come strutture incorporate.

Un esempio è mostrato di seguito:

Digita utente struct
id int
Nome String
età int

tipo di sviluppatore struct
Utente
Stipendio int

In questo esempio precedente, la struttura per sviluppatore accede ai campi della struttura utente.

Tag struct

Nei programmi GO, puoi aggiungere una stringa opzionale letterale a un campo struct. Questo è noto come un tag struct. Viene utilizzato per mantenere la meta-informazione per un campo struct. È quindi possibile esportare le informazioni nel campo in altri pacchetti per eseguire un'operazione o strutturare i dati in modo appropriato.

Troverai spesso tag in pacchetti di codifica, come XML, JSON, YAML, ORMS e Gestione configanti.

Per dichiarare un tag per un campo struct, è possibile passare la coppia di valore chiave all'interno delle bretelle letterali della stringa come "Chiave: valore". Per aggiungere più di un tag, separare ogni tag usando uno spazio.

Ecco il seguente esempio:

Digita utente struct
id int
Nome String 'max: "10"'
età int "

Tag di struct e riflette il pacchetto

Per accedere e utilizzare i tag struct, avrai bisogno del pacchetto di riflesso. Fa parte della libreria standard Go e puoi importarla con la clausola:

Importa "Rifletti"

Fornisce i metodi Get and Lookup per funzionare con i tag.

Per verificare se il tag viene trovato all'interno di un campo, possiamo usare il metodo di ricerca. Di seguito è riportato un codice di esempio:

Pacchetto principale
importazione (
"FMT"
"riflettere"
)
Digita utente struct
id int
Nome String 'max: "10"'
età int "

func main ()
U: = User 1, "Jane Doe", 34
T: = Rifletti.Typeof (u)
per i: = 0; io < t.NumField(); i++
F: = T.Campo (i)
Se _, ok: = f.Etichetta.Ricerca ("max"); OK
fmt.Println ("tag trovato")
altro
fmt.Println ("tag non trovato")


L'esempio del codice precedente si aggirerà sui campi della struttura e verificherà se il tag specificato viene trovato nel campo.

Per ottenere il campo con il tag specificato, possiamo fare quanto segue:

Pacchetto principale
importazione (
"FMT"
"riflettere"
)
Digita utente struct
id int
Nome String 'max: "10"'
età int "

func main ()
U: = User 1, "Jane Doe", 34
T: = Rifletti.Typeof (u)
per i: = 0; io < t.NumField(); i++
fmt.Println (t.Campo (i).Nome)
fmt.Println (t.Campo (i).Etichetta.Get ("max"))

Conclusione

Questo articolo copre i fondamenti del lavoro e dell'utilizzo dei tag struct e del pacchetto Reflect. Inoltre, sono state discusse la definizione e la natura delle strutture. Speriamo che tu abbia trovato questo articolo utile. Dai un'occhiata ad altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.