Desempaquetar slice/array en argumentos de función en Go: ¿hay un análogo del spread-operator de JS/Python?
Hola a todos. Llevo poco tiempo escribiendo en Go, vengo de Python y JavaScript. Allí era muy conveniente pasar un array o lista a una función que acepta varios argumentos usando el operador `*` (en Python) o `...` (spread en JS). Por ejemplo, en Python podía hacer `my_func(*my_list)`.
Ahora en Go tengo una función que acepta varios argumentos de tipo string:
```go
func printNames(name1, name2, name3 string) {
fmt.Println(name1, name2, name3)
}
```
Y tengo un slice de strings:
```go
names := []string{"Alice", "Bob", "Charlie"}
```
¿Cómo puedo pasar los elementos de este slice a la función `printNames` como argumentos separados? Intenté simplemente escribir `printNames(names...)`, pero el compilador se queja de que no puedo usar un slice con `...` en una función con parámetros fijos. Intenté desempaquetar explícitamente con `names[0], names[1], names[2]` — eso funciona, pero si tengo 10 elementos, se convierte en una pesadilla.
¿Alguien sabe si en Go hay alguna forma de desempaquetar un slice o array?