Golang struct -tagger

Golang struct -tagger
En struktur refererer til en navngitt enhet med felt, hver med navn og type. Strukturer er nyttige når du trenger å definere tilpassede typer.

Et eksempel på en struktur i GO -programmet er gitt nedenfor:

Skriv brukerstruktur
id int
Navnstreng
alder int

Det forrige eksemplet viser en eksplisitt struktur der feltene tilhører den spesifikke strukturen.

Du kan også erklære en implisitt struktur der feltene er erklært i en annen struktur. Disse er også kjent som innebygde strukturer.

Et eksempel er vist nedenfor:

Skriv brukerstruktur
id int
Navnstreng
alder int

type utviklerstruktur
Bruker
Lønn Int

I dette forrige eksemplet får utviklerstrukturen tilgang til feltene til brukerstrukturen.

Struct Tags

I GO -programmene kan du legge til et valgfritt streng bokstavelig til et strukturfelt. Dette er kjent som en struct -tag. Det brukes til å holde metainformasjon for et strukturfelt. Du kan deretter eksportere informasjonen i feltet til andre pakker for å utføre en operasjon eller strukturere dataene på riktig måte.

Du finner ofte tagger i kodingspakker, for eksempel XML, JSON, YAML, ORMS og Config Management.

For å erklære en tag for et strukturfelt, kan du passere nøkkelverdi-paret inne i streng bokstavelige seler som "nøkkel: verdi". For å legge til mer enn en tag, skill hver tag ved hjelp av et rom.

Her er følgende eksempel:

Skriv brukerstruktur
id int
Navnstreng 'Max: "10"'
alder int "

Struct Tags og Reflect Package

For å få tilgang til og bruke struct -tagger, trenger du refleksjonspakken. Det er en del av Go Standard Library, og du kan importere det med leddet:

Importer "Reflect"

Det gir get- og oppslagsmetodene for å jobbe med tagger.

For å sjekke om taggen er funnet i et felt, kan vi bruke oppslagsmetoden. Et eksempelkode er gitt nedenfor:

pakkehoved
import (
"FMT"
"reflektere"
)
Skriv brukerstruktur
id int
Navnstreng 'Max: "10"'
alder int "

func main ()
u: = bruker 1, "Jane doe", 34
T: = Reflekter.Typeof (u)
for i: = 0; Jeg < t.NumField(); i++
f: = t.Felt (i)
Hvis _, OK: = f.stikkord.Oppslag ("maks"); ok
fmt.Println ("Tag Found")
annet
fmt.Println ("Tag ikke funnet")


Det forrige kodeeksemplet vil sløyfe over feltet til strukturen og sjekke om den spesifiserte taggen finnes i feltet.

For å få feltet med den spesifiserte taggen, kan vi gjøre følgende:

pakkehoved
import (
"FMT"
"reflektere"
)
Skriv brukerstruktur
id int
Navnstreng 'Max: "10"'
alder int "

func main ()
u: = bruker 1, "Jane doe", 34
T: = Reflekter.Typeof (u)
for i: = 0; Jeg < t.NumField(); i++
fmt.Println (t.Felt (i).Navn)
fmt.Println (t.Felt (i).stikkord.Get ("Max"))

Konklusjon

Denne artikkelen dekker grunnleggende om å jobbe og bruke struct -tagger og refleksjonspakken. I tillegg ble definisjonen og arten av strukturer diskutert. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og opplæringsprogrammer.