Considere as seguintes estruturas pai e filho:
type Parent struct { id string children []Child } type Child struct { id string }
Suponha que temos uma fatia de estruturas Parent com valores predefinidos:
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
Requisitos de classificação:
Nosso objetivo é classificar a fatia pai com base em dois critérios:
Solução:
Para conseguir essa classificação, utilizamos a função sort.Slice, que fornece uma maneira flexível de classificar fatias com base em funções de comparação personalizadas. Aqui está o código:
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id Esse algoritmo de classificação lida com ambos os critérios com eficiência, garantindo que a fatia pai seja ordenada conforme desejado.
Resultado esperado:
A fatia classificada deve assemelham-se à seguinte estrutura:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3