¿Cómo eliminar un elemento de un slice en Golang? Formas correctas y trampas
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al trabajar con slices. Necesito eliminar un elemento por índice de un slice, pero no encuentro una función incorporada para esto.
Aquí hay un ejemplo de mi código:
```go
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry", "date"}
// Quiero eliminar "banana" (índice 1)
// ¿Cómo hacerlo correctamente?
fmt.Println(fruits)
}
```
Intenté asignar nil al elemento, pero esto no lo elimina del slice, solo pone el valor a cero:
```go
fruits[1] = "" // No funciona como eliminación
```
Luego intenté hacer un slice sin el elemento deseado, pero esto crea un nuevo slice, mientras que el original permanece:
```go
newFruits := append(fruits[:1], fruits[2:]...)
// Ahora fruits = ["apple", "cherry", "date", "date"] — extraño, ¿verdad?
```
¡El slice original también cambió y apareció un duplicado del último elemento! ¿Por qué sucede esto? ¿Cómo eliminar correctamente un elemento de un slice sin...