Avatar ·

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...