Considere las siguientes estructuras padre e hijo:
type Parent struct { id string children []Child } type Child struct { id string }
Supongamos que tenemos una porción de estructuras principales con valores predefinidos:
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
Requisitos de clasificación:
Nuestro objetivo es ordenar el segmento principal según dos criterios:
Solución:
Para lograr esta clasificación, utilizamos la función sort.Slice, que proporciona una forma flexible de ordenar sectores según una comparación personalizada. funciones. Aquí está el código:
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id Este algoritmo de clasificación maneja eficientemente ambos criterios, asegurando que el segmento principal esté ordenado como se desea.
Resultado esperado:
El segmento ordenado debe se parecen a la siguiente estructura:
[{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