Avatar ·

Descompactando slice/array em argumentos de função em Go: existe um análogo do operador spread do JS/Python?

Olá a todos. Estou escrevendo em Go recentemente, vim do Python e JavaScript. Lá era muito conveniente passar um array ou lista para uma função que aceita vários argumentos usando o operador `*` (em Python) ou `...` (spread em JS). Por exemplo, em Python eu podia fazer `my_func(*my_list)`. Agora em Go eu tenho uma função que aceita vários argumentos de string: ```go func printNames(name1, name2, name3 string) { fmt.Println(name1, name2, name3) } ``` E eu tenho um slice de strings: ```go names := []string{"Alice", "Bob", "Charlie"} ``` Como posso passar os elementos deste slice para a função `printNames` como argumentos separados? Tentei simplesmente escrever `printNames(names...)`, mas o compilador reclama que não posso usar slice com `...` em uma função com parâmetros fixos. Tentei descompactar explicitamente com `names[0], names[1], names[2]` — isso funciona, mas se eu tiver 10 elementos, vira um pesadelo. Alguém sabe se existe em Go uma maneira de descompactar um slice ou array?