Conversión de tipos de slices de interfaces en Go: ¿por qué no funciona?
¡Hola a todos! Soy nuevo en Go y no puedo entender la conversión de tipos para slices de interfaces. Tengo una función que acepta `[]interface{}`, pero quiero pasarle un slice de un tipo concreto, por ejemplo `[]string`. ¿Por qué Go no permite hacer esto directamente?
Aquí hay un ejemplo de código que no me funciona:
```go
package main
import "fmt"
func printAll(items []interface{}) {
for _, item := range items {
fmt.Println(item)
}
}
func main() {
names := []string{"Alice", "Bob", "Charlie"}
// Error: cannot use names (type []string) as type []interface{} in argument to printAll
printAll(names)
}
```
Entiendo que `string` implementa la interfaz `interface{}`, pero ¿por qué `[]string` no puede ser usado como `[]interface{}`? En la documentación se menciona la covarianza, pero no termino de entender cómo aplicarlo en la práctica. Necesito pasar diferentes tipos de slices a una misma función. ¿Cómo resolver correctamente este problema? ¿Quizás debería usar...
No answers yet.
Inicia sesión para dejar una respuesta