¿Cuál es la forma más simple de ordenar un array de estructuras por un campo arbitrario en Go?
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema de ordenación. Tengo un array de estructuras User:
type User struct {
Name string
Age int
Score float64
}
users := []User{
{"Anna", 25, 88.5},
{"Boris", 30, 92.1},
{"Viktor", 22, 85.0},
}
Necesito ordenar este array por diferentes campos según la elección del usuario: ya sea por nombre (alfabéticamente), por edad o por puntuación. Sé que en Go existe el paquete sort, pero para cada campo tengo que escribir una función separada con Less(i, j int) bool. Esto es muy incómodo, especialmente si hay muchos campos.
Por ejemplo, ordenar por edad:
sort.Slice(users, func(i, j int) bool {
return users[i].Age < users[j].Age
})
¿Y si necesito ordenar por nombre? Tengo que escribir una nueva función anónima. ¿Y si hay 10 campos? ¿O si necesito ordenar primero por edad y luego por nombre?
En Pyt
No answers yet.
Inicia sesión para dejar una respuesta