Vi er alle kjent med matriser, enten i Go eller på andre programmeringsspråk. En matrise er en samling av elementer av en relatert datatype (avhengig). I Go kan en matrise bare holde elementer av en lignende type. Arrays har en fast lengde og kan ikke vokse eller krympe når størrelsen er definert.
En skive er et syn på dynamisk størrelse på elementene i en matrise. En skive er veldig fleksibel, slik at du kan endre størrelse på den. Størrelsen må imidlertid forbli under kapasiteten til den underliggende matrisen.
Erklærer en skive
Vi kan erklære en skive ved hjelp av en enkel syntaks som vist nedenfor:
var skive_name [] data _typeI syntaks ovenfor starter vi med å spesifisere skivenavnet etterfulgt av et par firkantede parenteser og datatypen for skiven.
Du vil merke at skive erklæring er veldig lik den for en matrise. Vi spesifiserer imidlertid ikke en størrelse for en skive.
Lag skive - Metode 1
Det er to metoder for å lage en skive i go. Den første er å bruke det bokstavelige formatet. Dette ligner nær den som er vist i syntaksen ovenfor.
For eksempel oppretter koden nedenfor en skive som heter my_slice:
pakkehovedEksemplet ovenfor skaper en del av typen INT med standardverdier. Hvis du ikke vil bruke VaR -metoden for variabel erklæring, kan du bruke syntaksen nedenfor:
my_slice: = [] int 1,2,3,4,5,6Ovennevnte metode er kjent som skive bokstavelig.
Lag skive - Metode 2
Den andre metoden for å lage et skive i go er å bruke make -funksjonen.
Syntaksen er som:
func make ([] t, len, cap) [] tFunksjonen tar en datatype, lengde og kapasitet i dette tilfellet. Funksjonen vil tildele en matrise med størrelsen som spesifisert av kapasitetsparameteren. Funksjonen returnerer en skive som refererer til den matrisen.
For å se det i praksis, se nedenfor:
skive_var: = make ([] int, 10)Dette eksemplet erklærer en skive av størrelse 10 og int -type. Den resulterende utgangen er en skive av 0 verdier.
[0 0 0 0 0 0 0 0 0 0]Du kan tilordne verdiene til skiven ved hjelp av indeksnotasjon.
For å tilordne en verdi ved indeks 1, kan vi gjøre:
skive_var [0] = 10Ovennevnte kode skal returnere:
[10 0 0 0 0 0 0 0 0 0]Merk elementet ved indeks 0 er oppdatert for å gjenspeile den nye verdien.
Skjæregenskaper
Det er to viktige egenskaper ved en skive som du bør være kjent med. Lengden og kapasiteten.
Lengden på skiven refererer til det totale antall elementer som er holdt av skiven, mens kapasiteten refererer til antall elementer definert av den underliggende matrisen. Dette telles fra det første elementet i skiven.
For å få lengden og kapasiteten til en skive, kan du bruke henholdsvis Len () og Cap () -metodene.
Et eksempel er som demonstrert nedenfor:
pakkehovedEksempelkoden ovenfor skal returnere lengden og kapasiteten til skiven som:
Ength: 6Gå indeksskiver
Visste du at vi kan danne en skive fra eksisterende skiver?
Vi kan oppnå dette ved å spesifisere en indeks som er bundet med en lav og høy bundet. For eksempel å lage en ny skive med elementer fra indeks 1 til 5:
new_slice: = my_slice [1: 5]Skive iterasjon
Vi kan iterere over en matrise ved hjelp av klassikeren for en loop.
For eksempel:
pakkehovedI eksemplet over bruker vi en for loop og en rekke uttalelser for å iterere over indeksen og elementet i skiven. Den resulterende utgangen:
0 PythonHvis du ikke vil bruke rekkevidden til å sløyfe over skiven, kan du bruke lengden på skiven som:
for i: = 0; Jeg < len(my_slice); i++Eksemplet over vil returnere en lignende utgang som bruk av rekkevidden konstruksjon.
Gå kopierelement
Kopi -metoden lar deg kopiere elementer fra en skive til en annen. Tenk på eksemplet nedenfor:
FUNCCOPY_SLICE ()Funksjonen vil returnere det totale antallet elementer som er kopiert.
Flerdimensjonal skive
Du kan også lage en flerdimensjonal skive. Det betyr i utgangspunktet en skive av skiver. Et eksempel er som vist:
funcmulti_slice ()Eksemplet ovenfor skal skrive ut en flerdimensjonal skive som:
[[1 2] [3 4] [5 6] [7 8]]For å få tilgang til elementer i en flerdimensjonal matrise, kan du bruke indekser som:
fmt.Println (multi_slice [0] [0])Ovennevnte syntaks returnerer det første elementet i den første skiven.
Konklusjon
Denne guiden hjelper deg med det grunnleggende om å jobbe med skiver i Go. Selv om vi ikke kan eksosskiver i omfanget av denne opplæringen, bør det komme i gang.