Como iterar sobre todas as chaves de um map em Go? Iteração sobre dicionário
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao trabalhar com map. Preciso percorrer todas as chaves do dicionário e realizar algumas ações com elas. Estou acostumado com Python, onde posso simplesmente escrever `for key in my_dict:`, mas em Go isso não funciona.
Tenho um map que armazena nomes de usuários e suas idades:
```go
ages := map[string]int{
"Alice": 30,
"Bob": 25,
"Charlie": 35,
}
```
Quero exibir todos os usuários com mais de 28 anos. Tentei fazer assim:
```go
for key := range ages {
if ages[key] > 28 {
fmt.Println(key)
}
}
```
Mas não tenho certeza se esta é a maneira correta. Primeiro, li que a ordem das chaves em um map não é garantida — isso me confunde um pouco. Segundo, como faço se precisar obter não apenas a chave, mas também o valor? E existe alguma maneira de ordenar as chaves antes da iteração?
Ficarei grato por uma explicação detalhada com exemplos. Estou especialmente interessado em:
1. A sintaxe correta para percorrer