Heim >Backend-Entwicklung >Golang >Wie sortiere ich eine Go-Struktur richtig nach ihrem time.Time-Feld?
Sortieren einer Struktur nach ihrem time.Time-Feld
Sie versuchen, eine Struktur in Go nach ihrem time.Time-Feld zu sortieren, bei dem ein Problem aufgetreten ist. Das von Ihnen bereitgestellte Codefragment enthält eine benutzerdefinierte Sortierimplementierung, die einen Abschnitt Ihrer reviews_data-Struktur und eine Karte verwendet:
type timeSlice []reviews_data func (p timeSlice) Len() int { return len(p) } func (p timeSlice) Less(i, j int) bool { return p[i].date.Before(p[j].date) } func (p timeSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
Das von Ihnen gemeldete Problem besteht jedoch darin, dass das Ergebnis nicht korrekt sortiert ist. Dies kann mehrere Gründe haben:
Verbesserte Lösung (Go 1.8 und höher):
Verwendung der in Go 1.8 eingeführten Funktion sort.Slice , können Sie Ihren Sortiercode vereinfachen:
sort.Slice(timeSlice, func(i, j int) bool { return timeSlice[i].date.Before(timeSlice[j].date) })
Diese verbesserte Lösung nutzt die Sortierfunktionalität der Standardbibliothek und stellt so sicher ein zuverlässigerer und effizienterer Sortierprozess.
Das obige ist der detaillierte Inhalt vonWie sortiere ich eine Go-Struktur richtig nach ihrem time.Time-Feld?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!