Avatar ·

Typkonvertierung von Interface-Slices in Go: Warum funktioniert das nicht?

Hallo zusammen! Ich bin neu in Go und komme mit der Typkonvertierung für Interface-Slices nicht klar. Ich habe eine Funktion, die `[]interface{}` akzeptiert, aber ich möchte ihr einen Slice eines konkreten Typs, wie `[]string`, übergeben. Warum erlaubt Go das nicht direkt?\n\nHier ist ein Beispielcode, der bei mir nicht funktioniert:\n\n```go\npackage main\n\nimport "fmt"\n\nfunc printAll(items []interface{}) {\n for _, item := range items {\n fmt.Println(item)\n }\n}\n\nfunc main() {\n names := []string{"Alice", "Bob", "Charlie"}\n // Fehler: cannot use names (type []string) as type []interface{} in argument to printAll\n printAll(names)\n}\n```\n\nIch verstehe, dass `string` das Interface `interface{}` implementiert, aber warum kann `[]string` nicht als `[]interface{}` verwendet werden? In der Dokument