Golang Retire da fatia

Golang Retire da fatia
Uma fatia em Go é um tipo de dados que armazena uma coleção de dados ordenados do mesmo tipo. As fatias são muito semelhantes à matriz. No entanto, diferentemente das matrizes, as fatias são dinâmicas e não têm um comprimento fixo. Lembre -se de que, apesar da duração, as fatias mantêm outras propriedades de uma matriz de Golang, incluindo o tipo.

Neste artigo, exploraremos como remover um item de uma fatia.

Golang Crie fatia

Podemos criar uma fatia em Go, especificando o tipo de dados dos elementos que ele manterá. Podemos então incluir os itens da matriz dentro de um par de aparelhos encaracolados.

O código de exemplo abaixo mostra como criar uma fatia no Go:

Pacote principal
funcmain ()
Slice: = [] String "A", "B", "C", "D"

Depois de declararmos uma fatia, podemos executar ações como atualizar elementos em um índice específico, acessar os elementos, adicionar elementos adicionais e mais. Verifique nosso tutorial sobre fatias de Golang para saber mais.

Golang Excluir item

Antes de discutirmos como remover um item de uma fatia, vamos discutir como podemos criar um sublice a partir de uma fatia principal. Isso ocorre porque é importante entender como remover um item de uma fatia.

Podemos criar um sublice usando a notação de indexação. Por exemplo, se queremos criar uma sublice composta pelos valores do índice 2 a 7, podemos fazer:

new_slice: = Old_slice [2: 7]

A sintaxe acima agarrará os elementos no índice 2 para o índice 7 da antiga fatia e criará uma nova fatia.

Se você deseja criar um sublice do índice 0 para um índice de destino, podemos fazer:

new_slice: = Old_slice [: 5]

A sintaxe acima levará os elementos do índice 0 para o índice 5 e criará uma nova fatia.

Agora que temos o processo de criação de uma sublice a partir de uma fatia fora do caminho, podemos prosseguir para aprender a excluir um elemento de uma fatia.

Preserve a ordem da fatia

Suponha que tenhamos uma fatia contendo elementos como mostrado abaixo:

Slice: = [] String "A", "B", "C", "D", "E", "F"

Se queremos remover um elemento da fatia e ainda preservar a ordem, mudamos as posições dos elementos após o elemento que desejamos remover para a esquerda com um fator de um.

Podemos expressar a sintaxe acima como:

turno len (a) - i - 1

Onde a representa a fatia e eu como o índice do elemento que desejamos remover.

Um código de exemplo é como mostrado:

Pacote principal
importar "fmt"
func main ()
Slice: = [] String "A", "B", "C", "D", "E", "F"
ÍNDICE: = 1
cópia (slice [índice:], slice [índice+1:]) // Valores de mudança - Após o índice com um fator de 1
fatia [len (slice) -1] = "" // Remova o elemento
Slice = Slice [: Len (Slice) -1] // truncadoslice
fmt.Println (fatia)

O código acima removerá o elemento no índice 0. A fatia resultante é como mostrado:

[A C D E F]

Desconsidere a ordem de fatia

Se a reserva da ordem de fatia não for crucial, podemos usar o código como mostrado abaixo:

Pacote principal
importar "fmt"
func main ()
Slice: = [] String "A", "B", "C", "D", "E", "F"
ÍNDICE: = 1
Slice [índice] = Slice [Len (Slice) -1] // Copie o último elemento ToIndex, desejamos remover
fatia [len (slice) -1] = "" // remova o elemento
Slice = Slice [: Len (Slice) -1]
fmt.Println (fatia)

O código acima remove o elemento no índice especificado. No entanto, ele não mantém a ordem da fatia, como mostrado na saída abaixo:

[a f c d e]

Isso porque esse método substitui o elemento removido pelo elemento no último índice.

Conclusão

Neste guia, cobrimos o básico de trabalhar com fatias e como remover um elemento de uma fatia com e sem reter a ordem da fatia.

Obrigado pela leitura!