Ordenar una porción de estructuras con porciones anidadas
En Go, puede ordenar porciones de estructuras personalizadas utilizando el paquete de clasificación integrado. Considere el siguiente código que define dos estructuras, padre e hijo, que representan una relación padre-hijo:
type Parent struct {
id string
children []Child
}
type Child struct {
id string
}
Supongamos que tiene una porción de estructuras principales y desea ordenarlas según dos criterios:
Criterios de clasificación:
Solución:
El fragmento de código proporcionado aborda el requisito de clasificación:
``
// ordenar cada padre en el segmento de padres por Id
sort.Slice(parents, func(i, j int) bool {
return parents[i].id// para cada padre, ordene cada hijo en el segmento de niños por Id.
para _, padre := rango de padres {sort.Slice(parent.children, func(i, j int) bool { return parent.children[i].id}
``La función sort.Slice opera directamente en sectores, eliminando la necesidad de contenedores intermedios.
- Ordena el segmento de padres según Parent.id.
- Para cada padre en el segmento de padres ordenados, ordena el segmento de niños según Child.id usando un bucle anidado.
El resultado se alinea con el resultado esperado:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3