Sortieren eines Segments von Strukturen mit verschachtelten Slices
In Go können Sie Segmente benutzerdefinierter Strukturen mithilfe des integrierten Sortierpakets sortieren. Betrachten Sie den folgenden Code, der zwei Strukturen definiert, „Parent“ und „Child“, die eine Eltern-Kind-Beziehung darstellen:
type Parent struct {
id string
children []Child
}
type Child struct {
id string
}
Angenommen, Sie haben einen Teil der übergeordneten Strukturen und möchten diese anhand von zwei Kriterien sortieren:
Sortierkriterien:
Lösung:
Das bereitgestellte Code-Snippet befasst sich mit der Sortieranforderung:
``
// jedes sortieren Übergeordnetes Element im übergeordneten Slice nach Id
sort.Slice(parents, func(i, j int) bool {
return parents[i].id// Sortieren Sie für jedes übergeordnete Element jedes untergeordnete Element im untergeordneten Segment nach der ID.
for _, parent := range parent {sort.Slice(parent.children, func(i, j int) bool { return parent.children[i].id}
``Die Funktion sort.Slice arbeitet direkt mit Slices und eliminiert die Bedarf an Zwischencontainern.
- Es sortiert den Eltern-Slice basierend auf Parent.id.
- Für jedes Eltern-Slice im sortierten Eltern-Slice wird sortiert Die untergeordneten Slices basieren auf Child.id mithilfe einer verschachtelten Schleife.
Das Ergebnis stimmt mit der erwarteten Ausgabe überein:
[{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