Considérez les structures parent et enfant suivantes :
type Parent struct { id string children []Child } type Child struct { id string }
Supposons que nous ayons une tranche de structures Parent avec des valeurs prédéfinies :
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
Exigences de tri :
Notre objectif est de trier la tranche des parents en fonction de deux critères :
Solution :
Pour réaliser ce tri, nous utilisons la fonction sort.Slice, qui fournit un moyen flexible de trier les tranches en fonction de fonctions de comparaison personnalisées. Voici le code :
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id Cet algorithme de tri gère efficacement les deux critères, garantissant que la tranche parent est ordonnée comme souhaité.
Résultat attendu :
La tranche triée doit ressembler à la structure suivante :
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3