Cómo eliminar un elemento de un slice en Golang: formas correctas
¡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, pero no puedo encontrar una función incorporada que lo haga. En Python estoy acostumbrado a `list.pop()` o `del list[i]`, pero en Go no existe eso.
Esto es lo que he probado:
```go
package main
import "fmt"
func main() {
fruits := []string{"apple", "banana", "cherry", "date"}
// Quiero eliminar "banana" (índice 1)
// Intenté asignar nil directamente - no funciona
// fruits[1] = nil // error de compilación
// Intenté hacer un slice, pero queda mal
result := append(fruits[:1], fruits[2:]...)
fmt.Println(result) // muestra: [apple cherry date]
fmt.Println(fruits) // muestra: [apple cherry date date] - ¡bug!
// ¿Por qué el slice original cambió? ¿Y cómo eliminar correctamente?
}
```
Noté que después de `append` el slice original `fruits` también cambia, aunque asigné el resultado a una nueva variable. Esto es muy extraño. Expliquen, por favor.
No answers yet.
Inicia sesión para dejar una respuesta