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:
<code class="go">type Parent struct { id string children []Child } type Child struct { id string }</code>
Angenommen, Sie haben einen Teil der Parent-Strukturen und möchten diese nach zwei Kriterien sortieren:
Sortierkriterien:
Lösung:
Das bereitgestellte Code-Snippet adressiert die Sortieranforderung:
``
// Sortieren Sie jedes Elternteil im Eltern-Slice nach ID
sort.Slice(parents, func(i, j int) bool {
return parents[i].id < parents[j].id })
// Sortieren Sie für jedes Elternteil jedes Kind im Kinder schneiden nach ID
for _, parent := range parent {
sort.Slice(parent.children, func(i, j int) bool { return parent.children[i].id < parent.children[j].id })
}
``
Die sort.Slice-Funktion arbeitet direkt mit Slices, was die Notwendigkeit überflüssig macht für Zwischenbehälter.
Das Ergebnis stimmt mit der erwarteten Ausgabe überein:
[{1 [{7} {8} {9}]} {2 [{4} {5} {6}]} {3 [{1} {2} {3}]}]
Das obige ist der detaillierte Inhalt vonWie sortiert man ein Struktursegment mit verschachtelten Slices in Go basierend auf mehreren Kriterien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!