Qual é a maneira mais simples de ordenar um array de structs por um campo arbitrário em Go?
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema de ordenação. Tenho um array de structs User:
type User struct {
Name string
Age int
Score float64
}
users := []User{
{"Anna", 25, 88.5},
{"Boris", 30, 92.1},
{"Victor", 22, 85.0},
}
Preciso ordenar este array por diferentes campos dependendo da escolha do usuário: às vezes pelo nome (alfabeticamente), às vezes pela idade, às vezes pela pontuação. Eu sei que em Go existe o pacote sort, mas para cada campo tenho que escrever uma função separada com Less(i, j int) bool. Isso é muito inconveniente, especialmente se houver muitos campos.
Por exemplo, ordenação por idade:
sort.Slice(users, func(i, j int) bool {
return users[i].Age < users[j].Age
})
E se precisar ordenar pelo nome? Tenho que escrever uma nova função anônima. E se houver 10 campos? Ou ordenar primeiro pela idade e depois pelo nome?
Em Python...
No answers yet.
Faça login para deixar uma resposta
Blogs
PHP em 2025: por onde começar para iniciantes — guia passo a passo
Clean Code em C#: princípios e exemplos para desenvolvedores .NET
Trabalhando com bancos de dados em Rust: PostgreSQL e MongoDB para iniciantes
JSON ou serialize: o que escolher para armazenar arrays PHP?