Golang fjerne fra skiven

Golang fjerne fra skiven
A Slice In Go er en datatype som lagrer en samling bestilte data av samme type. Skiver ligner veldig på matrisen. I motsetning til matriser, er skiver dynamiske og har imidlertid ikke en fast lengde. Husk at til tross for lengden, beholder skiver andre egenskaper til en Golang -matrise, inkludert typen.

I denne artikkelen vil vi utforske hvordan du fjerner et element fra en skive.

Golang Lag skive

Vi kan lage en skive i Go ved å spesifisere datatypen på elementene den vil holde. Vi kan deretter legge ved gjenstandene i matrisen inne i et par krøllete seler.

Eksempelkoden nedenfor viser hvordan du oppretter en skive i Go:

pakkehoved
FUNCMAIN ()
skive: = [] streng "a", "b", "c", "d"

Når vi har erklært en skive, kan vi utføre handlinger som å oppdatere elementer i en spesifikk indeks, få tilgang til elementene, legge til flere elementer og mer. Sjekk opplæringen vår på Golang -skiver for å lære mer.

Golang slett element

Før vi diskuterer hvordan du fjerner et element fra en skive, la oss diskutere hvordan vi kan lage en subskice fra en hovedskive. Dette er fordi det er viktig å forstå hvordan du fjerner et element fra en skive.

Vi kan lage en underskice ved å bruke indekseringsnotasjonen. Hvis vi for eksempel ønsker å lage en underskice som består av verdiene fra indeks 2 til 7, kan vi gjøre:

new_slice: = old_slice [2: 7]

Ovennevnte syntaks vil ta tak i elementene ved indeks 2 til indeks 7 fra den gamle skiven og lage en ny skive.

Hvis du vil opprette en underskice fra indeks 0 til en målindeks, kan vi gjøre:

new_slice: = old_slice [: 5]

Ovennevnte syntaks vil ta elementene fra indeks 0 til indeks 5 og lage en ny skive.

Nå som vi har prosessen med å lage en underskice fra en skive ut av veien, kan vi fortsette med å lære å slette et element fra en skive.

Bevare skiveordre

Anta at vi har en skive som inneholder elementer som vist nedenfor:

skive: = [] streng "a", "b", "c", "d", "e", "f"

Hvis vi ønsker å fjerne et element fra skiven og fremdeles bevare ordren, ved å skifte elementene til elementet etter elementet vi ønsker å fjerne mot venstresiden med en faktor på en.

Vi kan uttrykke syntaks ovenfor som:

skift len ​​(a) - i - 1

Der a representerer skiven og jeg som indeksen for elementet vi ønsker å fjerne.

Et eksempelkode er som vist:

pakkehoved
Importer "FMT"
func main ()
skive: = [] streng "a", "b", "c", "d", "e", "f"
Indeks: = 1
Kopi (skive [indeks:], skive [indeks+1:]) // Skiftverdier etter indeksen med en faktor på 1
skive [len (skive) -1] = "" // Fjern elementet
skive = skive [: len (skive) -1] // truncateslice
fmt.Println (skive)

Koden over vil fjerne elementet ved indeks 0. Den resulterende skiven er som vist:

[A C D E F]

Se bort fra skiveordren

Hvis reservering av skiveordren ikke er avgjørende, kan vi bruke koden som vist nedenfor:

pakkehoved
Importer "FMT"
func main ()
skive: = [] streng "a", "b", "c", "d", "e", "f"
Indeks: = 1
skive [indeks] = skive [len (skive) -1] // kopier siste element toindex vi ønsker å fjerne
skive [len (skive) -1] = "" // Fjern elementet
skive = skive [: len (skive) -1]
fmt.Println (skive)

Koden over fjerner elementet ved den spesifiserte indeksen. Den beholder imidlertid ikke rekkefølgen på skiven som vist i utgangen nedenfor:

[a f c d e]

Dette fordi denne metoden erstatter det fjerne elementet med elementet ved siste indeks.

Konklusjon

I denne guiden dekket vi det grunnleggende om å jobbe med skiver og hvordan du fjerner et element fra en skive med og uten å beholde skiveordren.

Takk for at du leste!