Avatar ·

Entpacken eines Slices/Arrays in Funktionsargumente in Go: Gibt es ein Äquivalent zum Spread-Operator aus JS/Python?

Hallo zusammen. Ich schreibe seit kurzem in Go, bin von Python und JavaScript umgestiegen. Dort war es sehr praktisch, ein Array oder eine Liste an eine Funktion zu übergeben, die mehrere Argumente akzeptiert, mit dem Operator `*` (in Python) oder `...` (spread in JS). Zum Beispiel konnte ich in Python `my_func(*my_list)` machen. Jetzt habe ich in Go eine Funktion, die mehrere String-Argumente akzeptiert: ```go func printNames(name1, name2, name3 string) { fmt.Println(name1, name2, name3) } ``` Und ich habe einen String-Slice: ```go names := []string{"Alice", "Bob", "Charlie"} ``` Wie kann ich die Elemente dieses Slices als separate Argumente an die Funktion `printNames` übergeben? Ich habe versucht, einfach `printNames(names...)` zu schreiben, aber der Compiler beschwert sich, dass ich einen Slice mit `...` in einer Funktion mit festen Parametern nicht verwenden kann. Ich habe versucht, explizit über `names[0], names[1], names[2]` zu entpacken – das funktioniert, aber wenn ich 10 Elemente habe, wird das zum Albtraum. Könnt ihr mir sagen, ob es in Go eine Möglichkeit gibt, einen Slice oder ein Array zu entpacken?