Avatar ·

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.