Berücksichtigen Sie die folgenden übergeordneten und untergeordneten Strukturen:
type Parent struct { id string children []Child } type Child struct { id string }
Angenommen, wir haben ein Segment von Parent-Strukturen mit vordefinierten Werten:
parents := []Parent{ { "3", []Child{ {"2"}, {"3"}, {"1"}, }, }, { "1", []Child{ {"8"}, {"9"}, {"7"}, }, }, { "2", []Child{ {"5"}, {"6"}, {"4"}, }, }, }
Sortieranforderungen:
Unser Ziel ist es, den übergeordneten Slice nach zwei Kriterien zu sortieren:
Lösung:
Um diese Sortierung zu erreichen, verwenden wir die Funktion sort.Slice, die eine flexible Möglichkeit bietet, Slices basierend auf benutzerdefinierten Vergleichsfunktionen zu sortieren. Hier ist der Code:
// Sort parents by their ID
sort.Slice(parents, func(i, j int) bool { return parents[i].id Dieser Sortieralgorithmus verarbeitet beide Kriterien effizient und stellt sicher, dass das übergeordnete Slice wie gewünscht geordnet ist.
Erwartetes Ergebnis:
Das sortierte Slice sollte ähneln der folgenden Struktur:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3