Avatar ·

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?