Junior — Middle
¿Cómo se puede ordenar un array de estructuras en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
En Go, para ordenar un array de estructuras, se puede usar el paquete sort. Para ello, es necesario implementar la interfaz sort.Interface, que requiere tres métodos: Len(), Less(i, j int) bool y Swap(i, j int).
Ejemplo de ordenamiento de un slice de estructuras por uno de sus campos:
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
type ByAge []Person
func (a ByAge) Len() int { return len(a) }
func (a ByAge) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByAge) Less(i, j int) bool { return a[i].Age < a[j].Age }
func main() {
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
sort.Sort(ByAge(people))
fmt.Println(people)
}
Como resultado, el slice people estará ordenado por edad.