Hva er refleksjon?
Refleksjon refererer til metoden for å analysere og inspisere variabler og deres verdier under kjøretid. Det er en veldig nyttig teknikk når du arbeider med abstrakte komponenter i en struktur. Dette betyr ikke at det er begrenset til strukturer. La oss diskutere forskjellige komponenter av refleksjon i Golang.
Påkrevd import
I Go leveres muligheten til å utføre refleksjon ved hjelp av refleksjonspakken. Derfor må vi importere det før bruk. Du kan importere den som vist i utdraget nedenfor:
Importer "Reflect"Når du er importert, kan du begynne å bruke de medfølgende metodene og funksjonalitetene.
Typeof ()
En metode fra refleksjonspakken er typen (). Denne funksjonen lar deg bestemme typen en variabel.
For å bruke det, kan vi gjøre:
pakkehovedEksemplet ovenfor bruker refleksjon.TypeOf () -metode for å sjekke datatypene til forskjellige variabler. Den resulterende utgangen er som vist:
Type => intVerdien av()
Reflekten.ValueOf () -metoden returnerer verdien av en spesifikk variabel. Et eksempel er som vist:
fmt.Println ("verdi =>", reflekterer.Valueof (var4))Dette skal returnere verdien av var4 -variabelen.
Produksjon:
Verdi => [1 2 3]Kopiere()
Kopi -metoden brukes til å kopiere elementene i en spesifikk kilde til et spesifisert reisemål. Funksjonen vil utføre kopieroperasjonen til destinasjonen er full av elementene fra kilden er utmattet.
Funksjonen returnerer antall elementer som er kopiert fra kilden til destinasjonen.
Husk at destinasjonen og kilden må være av samme type.
Tenk på eksemplet som er vist nedenfor:
pakkehovedI eksemplet over bruker vi refleksjonen.ValueOf () for å kaste variabelen til sin type. Vi bruker deretter Copy () -metoden for å kopiere elementene i DEST til SRC -variabelen. Den resulterende utgangen er som vist:
Elementer kopiert: 3Swapper ()
Swapper () -metoden lar deg bytte elementer i en skive. Et eksempel er som vist nedenfor:
LST: = [] int 1, 2, 3, 4, 5Eksemplet over bytter skiven fra den første indeksen til den siste. Utgangen er som vist:
Før bytte: [1 2 3 4 5]Numfield ()
Numfield () -metoden returnerer antall felt innenfor en gitt struktur. Et eksempel er som vist:
Skriv My_struct structOvennevnte skal returnere antall felt i strukturen. Produksjon:
4Felt()
Feltet () -metoden returnerer navnet og datatypen av felt i en struktur.
struct_1: = my_struct "a", 1, 3.14, falskOvennevnte program returnerer navnet på feltene i strukturen og deres datatyper. Produksjon:
felt_1 strengMakechan ()
Makean () -metoden oppretter en spesifisert typekanal og buffers størrelseskanal. Eksempel:
var str chan strengOvennevnte skal lage en kanal av Chan -type og en bufferstørrelse på 256. Den resulterende utgangen er som vist:
Kanalkind: ChanMakemap ()
Som navnet antyder, lager makemap () -funksjonen et kart over den definerte datatypen.
Ta eksemplet nedenfor:
var str kart [streng] strengDette skaper et nytt kart. Produksjon:
Kind => KartKonklusjon
I denne guiden klødde vi på overflaten av å bruke refleksjonspakken i Go. Husk at pakken tilbyr mye mer enn det som diskuteres her.