Sobes.tech
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.