Maison >développement back-end >Golang >Comment trier correctement une structure Go par son champ time.Time ?
Tri d'une structure par son champ time.Time
Vous essayez de trier une structure dans Go par son champ time.Time, qui a rencontré un problème. Le fragment de code que vous avez fourni inclut une implémentation de tri personnalisée utilisant une tranche de votre structure reviews_data et une carte :
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] }
Cependant, le problème que vous avez signalé est que le résultat n'est pas trié correctement. Cela peut être dû à plusieurs raisons :
Solution améliorée (Go 1.8 et versions ultérieures) :
Utilisation de la fonction sort.Slice introduite dans Go 1.8 , vous pouvez simplifier votre code de tri :
sort.Slice(timeSlice, func(i, j int) bool { return timeSlice[i].date.Before(timeSlice[j].date) })
Cette solution améliorée utilise la fonctionnalité de tri de la bibliothèque standard, garantissant un processus de tri plus fiable et efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!