Avatar ·

Como remover um elemento de um slice em Golang? Maneiras corretas e armadilhas

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com slices. Preciso remover um elemento por índice de um slice, mas não consigo encontrar uma função embutida para isso.\n\nAqui está um exemplo do meu código:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc main() {\n fruits := []string{"apple", "banana", "cherry", "date"}\n // Quero remover "banana" (índice 1)\n // Como fazer isso corretamente?\n fmt.Println(fruits)\n}\n```\n\nTentei simplesmente atribuir nil ao elemento, mas isso não o remove do slice, apenas zera o valor:\n\n```go\nfruits[1] = "" // Não funciona como remoção\n```\n\nDepois tentei fazer um slice sem o elemento desejado, mas isso cria um novo slice, enquanto o original permanece:\n\n```go\nnewFruits := append(fruits[:1], fruits[2:]...)\n// Agora fruits = ["apple"