Golang Rimuovi dalla fetta

Golang Rimuovi dalla fetta
Una fetta in go è un tipo di dati che memorizza una raccolta di dati ordinati dello stesso tipo. Le fette sono molto simili all'array. Tuttavia, a differenza degli array, le fette sono dinamiche e non hanno una lunghezza fissa. Tieni presente che, nonostante la lunghezza, le fette mantengono altre proprietà di un array di Golang, incluso il tipo.

In questo articolo, esploreremo come rimuovere un articolo da una fetta.

Golang crea fetta

Possiamo creare una fetta in GO specificando il tipo di dati degli elementi che terrà. Possiamo quindi racchiudere gli elementi dell'array all'interno di una coppia di bretelle.

Il codice di esempio seguente mostra come creare una fetta in GO:

Pacchetto principale
funcmain ()
slice: = [] string "a", "b", "c", "d"

Una volta dichiarata una fetta, possiamo eseguire azioni come l'aggiornamento di elementi in un indice specifico, accedere agli elementi, aggiungere ulteriori elementi e altro ancora. Controlla il nostro tutorial sulle fette di Golang per saperne di più.

Golang Elimina l'articolo

Prima di discutere su come rimuovere un oggetto da una fetta, discutiamo di come possiamo creare una sottospetta da una fetta principale. Questo perché è importante capire come rimuovere un oggetto da una fetta.

Possiamo creare una sotto-slitta utilizzando la notazione di indicizzazione. Ad esempio, se vogliamo creare una sotto-sl-slice composta dai valori dall'indice da 2 a 7, possiamo fare:

new_slice: = old_slice [2: 7]

La sintassi di cui sopra afferrerà gli elementi da indice 2 all'indice 7 dalla vecchia fetta e creerà una nuova fetta.

Se si desidera creare una sotto-slitta dall'indice 0 a un indice di destinazione, possiamo fare:

new_slice: = old_slice [: 5]

La sintassi di cui sopra prenderà gli elementi dall'indice 0 all'indice 5 e creerà una nuova fetta.

Ora che abbiamo il processo di creazione di una sotto-slitta da una fetta fuori mano, possiamo procedere con l'apprendimento di come eliminare un elemento da una fetta.

Preservare l'ordine della fetta

Supponiamo di avere una fetta contenente elementi come mostrato di seguito:

slice: = [] string "a", "b", "c", "d", "e", "f"

Se vogliamo rimuovere un elemento dalla fetta e conservare comunque l'ordine, spostiamo le posizioni degli elementi dopo l'elemento che desideriamo rimuovere verso sinistra con un fattore di uno.

Possiamo esprimere la sintassi sopra come:

Shift Len (A) - I - 1

Dove a rappresenta la fetta e io come indice dell'elemento che desideriamo rimuovere.

Un codice di esempio è come mostrato:

Pacchetto principale
Importa "FMT"
func main ()
slice: = [] string "a", "b", "c", "d", "e", "f"
indice: = 1
copia (slice [indice:], slice [indice+1:]) // Valutario di spostamento, dopo l'indice con un fattore 1
Slice [len (slice) -1] = "" // Rimuovi l'elemento
slice = slice [: len (slice) -1] // truncateslice
fmt.Println (fetta)

Il codice sopra rimuoverà l'elemento in indice 0. La fetta risultante è come mostrata:

[a c d e f]

Ignorare l'ordine della fetta

Se la riserva dell'ordine della fetta non è cruciale, possiamo usare il codice come mostrato di seguito:

Pacchetto principale
Importa "FMT"
func main ()
slice: = [] string "a", "b", "c", "d", "e", "f"
indice: = 1
Slice [indice] = slice [len (slice) -1] // copia l'ultimo elemento toindex desideriamo rimuovere
Slice [len (slice) -1] = "" // Rimuovi l'elemento
Slice = Slice [: Len (Slice) -1]
fmt.Println (fetta)

Il codice sopra rimuove l'elemento nell'indice specificato. Tuttavia, non mantiene l'ordine della fetta come mostrato nell'output di seguito:

[a f c d e]

Questo perché questo metodo sostituisce l'elemento rimosso con l'elemento nell'ultimo indice.

Conclusione

In questa guida, abbiamo coperto le basi del lavoro con le fette e come rimuovere un elemento da una fetta con e senza conservare l'ordine della fetta.

Grazie per aver letto!