Avatar ·

Como obter uma slice de chaves de um map em Go: solução simples e eficiente

Olá a todos! Sou um desenvolvedor Go iniciante e me deparei com uma tarefa aparentemente simples, mas não consigo encontrar uma solução elegante. Tenho um map, digamos, `map[string]int`, onde as chaves são nomes de usuários e os valores são suas idades. Preciso obter uma lista de todas as chaves (nomes) como uma slice `[]string`, para, por exemplo, passá-la para uma função que exibe a lista de usuários. Em Python, eu simplesmente escreveria `list(my_dict.keys())`. Em JavaScript, `Object.keys(myObj)`. Em Go, até agora só vejo a opção de iteração manual: ```go users := map[string]int{ "Alice": 25, "Bob": 30, "Charlie": 22, } var keys []string for k := range users { keys = append(keys, k) } ``` Isso funciona, mas parece uma solução prolixa e caseira. Acho que para uma operação tão frequente, a biblioteca padrão do Go deveria ter uma função embutida. Procurei em `reflect` e `maps` (Go 1.21+), mas não encontrei uma resposta clara. Perguntas: 1. A iteração manual é realmente a única