Golang -kart

Golang -kart
Kart er en grunnleggende datastruktur på de fleste programmeringsspråk. Kart refererer til en samling av nøkkelverdipar som brukes til å lagre uordnede data. På andre programmeringsspråk blir kart referert til som ordbøker, hasj, assosiativ matrise, hasjkart eller uordnede kart.

Uansett navn gir kart allsidighet, raske og effektive datautseende, oppdateringer og sletter ved hjelp av settet med unike nøkler.

Hovedfokuset for denne opplæringen er å veilede deg gjennom å lage og bruke kart i Go -programmeringsspråket.

Gå til å lage kart

Det er to måter å lage et kart på GO -programmeringsspråket.

Kart bokstavelig

Den første metoden er å bruke et søkeordkart etterfulgt av datatypen på tasten (vedlagt i firkantede parenteser) og datatypen til verdiene.

Når du har definert kartet, kan du sette inn settet med nøkkelverdipar inne i et par krøllete seler.

Syntaksen er som vist:

Kart [nøkkel] verdi
Nøkkel: Verdi

Kart er veldig nyttige når du lagrer relaterte data, for eksempel brukerinformasjon. Følgende kode oppretter for eksempel et kart som lagrer brukerinformasjon.

user_info: = kart [streng] streng
"id": "1",
"Navn": "Jonh Doe",
"Avdeling": "Spillutvikler",
"Lønn": "$ 140 000",
"Land": "Bulgaria",

Merk at nøkkelverdiparene på kartet er vedlagt inne i de krøllete seler. Verdien til venstre for tykktarmen representerer nøkkelen, mens verdien til høyre representerer den tilhørende verdien.

I eksemplet ovenfor formaterer vi nøkkelverdiparene som JSON for enklere lesbarhet; Imidlertid kan du ha en enfore som:

user_info: = kart [streng] streng
"Id": "1", "Navn": "Jonh Doe", "Department": "Game Developer", "Lønn": "$ 140.000", "Country": "Bulgaria",

Forsikre deg om å skille hvert nøkkelverdipar med komma.

Funksjonell tilnærming

Den andre metoden du kan bruke til å lage et kart i Go er Make -funksjonen. Dette er en innebygd funksjon som lar deg passere typen kartet for å lage. Det returnerer et initialisert kart. Syntaksen er som vist nedenfor:

lage (kart [key_type] value_type)

Funksjonen vil returnere et tomt kart.

Du kan tilordne et kart til en variabel som andre programmeringsspråk, som vist i eksemplene ovenfor.

For å se nøkkelverdiene i matrisen, kan du bruke FMT.println -metoden som vist i eksemplet nedenfor:

pakkehoved
Importer "FMT"
func main ()
user_info: = kart [streng] streng
"Id": "1", "Navn": "Jonh Doe", "Department": "Game Developer", "Lønn": "$ 140.000", "Country": "Bulgaria",

fmt.Println ("Maps:", user_info)

Koden over skal returnere utdataene som vist:

::produksjon
Kart: Kart [Land: Bulgaria Avdeling: Spillutvikler ID: 1 Navn: Jonh Doe Lønn: $ 140 000]

Få tilgang til kartelementer

For å få verdien lagret på et kart, kan du bruke den unike nøkkelen. Golang skal returnere verdien som er tilknyttet den spesifiserte tasten.

For eksempel:

fmt.Println (user_info ["name"])

Ovennevnte utdrag skal returnere verdien som er tilknyttet nøkkel "Navn" fra User_Info -kartet.

Utgangen er som vist ”

::produksjon
Jonh Doe

Siden hver tast på et kart er unik, bør koden ovenfor alltid returnere en enkelt verdi tilknyttet en nøkkel hvis det eksisterer.

Derfor er bruk av kart effektivt for relatert informasjon.

Kart iterasjon

Det neste spørsmålet kommer, hvordan itererer du over varene på et kart? I motsetning til andre programmeringsspråk, som gir innebygde funksjoner for å hente nøkler og verdier, gjør GO ikke.

Imidlertid lar det deg iterere over et kart ved hjelp av Operatøren.

La oss ta eksemplet User_info -kart vi opprettet tidligere. Vi kan bruke rekkevidden til å iterere over tastene og verdiene på kartet, som vist i eksempelkoden nedenfor:

for k, v: = rekkevidde bruker_info
fmt.Printf (" %q -> %q \ n", k, v)

I koden ovenfor, vil gå iterere over elementene og returnere hver tast og tilhørende verdi. Merk at GO vil skape variablene med den angitte typen. For eksempel er både nøkkelen og verdien strenger; Derfor kan vi bruke %q -formatter til å skrive ut verdien ved å bruke printf -funksjonen.

Den resulterende utgangen er som vist:

"Id" -> "1"
"Navn" -> "Jonh Doe"
"Avdeling" -> "Spillutvikler"
"Lønn" -> "$ 140 000"
"Land" -> "Bulgaria"

Hva skjer når du bare trenger tilgang til tastene? Du kan erklære en variabel for å lagre nøklene og deretter bruke rekkeoperatøren i et slikt scenario.

Tenk på eksemplet som er vist nedenfor:

Keys: = [] String
for k: = rekkevidde bruker_info
Keys = vedlegg (Keys, K)

fmt.Printf ("%q", nøkler)

I eksemplet over begynner vi med å definere en skive for å lagre nøklene fra kartet. Vi bruker deretter rekkeoperatøren til å iterere over tastene og legge til hver tast til skiven.

Til slutt skriver vi ut tastene ved hjelp av printf -metoden. Den resulterende utgangen er som vist:

["id" "navn" "avdeling" "lønn" "land"]

Du bruker den samme teknikken ovenfor for å få verdiene på et kart.

Kartlengde

I Golang kan du få lengden på et kart ved hjelp av Len -metoden. Dette returnerer antall elementer på kartet.

For eksempel:

fmt.Println (len (user_info))

Antall elementer på kartet er:

5

Legg til, oppdater, slett nøkler og verdier

I GO er kart mutable. Dette betyr at du kan legge til, slette eller oppdatere eksisterende elementer på kartet.

La oss se på noen få eksempler på hvordan vi skal utføre slike operasjoner.

Legg til nytt vare

For å legge til et nytt element på et kart, referer du navnet på kartet etterfulgt av nøkkelen i firkantede parenteser og en enkelt sing (=) for å tilordne en ny verdi.

Syntaksen er som vist:

map_name [nøkkel] = verdi

La oss legge til en ny nøkkel til User_Info -kartet som vist i eksemplet nedenfor:

user_info ["dob"] = "06/06/1995"

I eksemplet over legger vi til et nytt element som heter "DOB" til User_Info -kartet. Husk at gjenstander på kartet er uordnede. Å legge til et nytt element betyr ikke at det vil vises som det siste eller første elementet på kartet.

Oppdater et element

Anta at vi må endre et stykke informasjon om brukeren. Si for eksempel at brukeren fikk en økning (yay!), og vi må oppdatere informasjonen.

Vi kan bruke en lignende syntaks som å legge til en ny nøkkel. Vi refererer imidlertid til en eksisterende nøkkel på kartet i dette tilfellet.

Et eksempel er som vist:

user_info ["lønn"] = "$ 160 000"

Ovennevnte kode skal endre verdien på "lønn" -tasten til den nye spesifiserte verdien.

Den resulterende utgangen er som vist:

fmt.Println (user_info)

Utgangen er som vist:

[Land: Bulgaria Avdeling: Spillutvikler DOB: 06/06/1995 ID: 1 Navn: Jonh Doe Lønn: $ 160.000]

Merk den nye verdien av lønnsnøkkelen er oppdatert for å gjenspeile de nye dataene.

Tips: En bedre måte å tenke på det er, hvis varen eksisterer, oppdaterer verdien; Ellers oppretter du et nytt element.

Slett et element

Go lar deg også slette et element fra kartet. Vi bruker Delete () -metoden, som tar to argumenter.

Det første argumentet er navnet på kartvariabelen som du kan slette et element, og det andre er nøkkelen til å slette.

Se på eksemplet vist nedenfor:

slett (user_info, "avdeling")
fmt.Println (user_info)

Funksjonen vil slette "avdelingen" fra User_Info -kartet. Det resulterende kartet er som vist:

Kart [Land: Bulgaria ID: 1 Navn: Jonh Doe Lønn: $ 140 000]

Fjern et kart

Anta at du vil fjerne et kart over alle eksisterende varer? For å gjøre dette, kan du stille verdiene til et tomt kart med samme tast og verditype.

For eksempel:

user_info = kart [streng] streng

Eksemplet ovenfor bør initialisere bruker_info-kartet til et tomt kart.

Tips: Kart er uordnet samling, og operasjoner som iterasjoner vil ikke alltid resultere i samme rekkefølge av varer. Hvis ordren er en nødvendighet, bør du vurdere en annen datatype.

Konklusjon

I denne guiden utforsket vi kart på Go -programmeringsspråket. Ved hjelp av kart kan du lage et sett med uordnede elementer og bruke hver unike tast for å få tilgang til varene. Dette fjerner behovet for indekser for å få tilgang til elementer.

Takk for at du leser, og kom tilbake for flere go -opplæringsprogrammer.