Como obter um slice de chaves de um map em Go: guia completo
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema que parece elementar, mas não consigo encontrar uma solução elegante.
\n\nEu tenho um map com dados de usuários:
\n\nusers := map[int]string{\n 1: "Alice",\n 2: "Bob",\n 3: "Charlie",\n 4: "Diana",\n}\n\nPreciso obter uma lista de todos os IDs de usuários (chaves) como um slice []int. Em Python, eu simplesmente escreveria list(users.keys()), mas em Go não existe uma função tão simples assim.
Tentei fazer assim:
\n\nvar keys []int\nfor key := range users {\n keys = append(keys, key)\n}\n\nIsso funciona, mas parece muito verboso. Talvez exista uma função embutida ou uma maneira mais idiomática? Especialmente me preocupa: