Le tri par le temps.De temps en Golang

Je suis en train de trier struct dans GOlang par ses membres, qui est de type temps.Temps.
la structure est comme suit.

type reviews_data struct {
    review_id string
    date time.Time
    score int
    firstname string
    anonymous bool
    review_text string
    title_text string
    rating float64
    upcount int
}

J'ai le dessous de fonctions de tri

type timeSlice []reviews_data

//Forward request for length
func (p timeSlice) Len() int {
    return len(p) 
}

//Define compare
func (p timeSlice) Less(i, j int) bool {
    return p[i].date.Before(p[j].date)
}

//Define swap over an array
func (p timeSlice) Swap(i, j int) {
    p[i], p[j] = p[j], p[i] 
}

Une carte est définie comme suit

var reviews_data_map = make(map[string]reviews_data)

Après la carte se remplit avec les valeurs,le tri de la carte par des valeurs se fait comme ci-dessous

//Sort the map by date
    date_sorted_reviews := make(timeSlice, 0, len(reviews_data_map))
    for _, d := range reviews_data_map {
        date_sorted_reviews = append(date_sorted_reviews, d)
    }       
    sort.Sort(date_sorted_reviews)

Le problème est que le résultat n'est pas triée.Quelqu'un peut me dire quel est le problème.
Merci à l'avance.

  • Êtes-vous certains qu'ils ne sont pas classés? Votre tri code est correct.
  • Voici la sortie Avant de les Trier 2014-04-16 19:57:22.096 +0000 UTC 2014-04-15 20:08:07.226 +0000 UTC 2014-04-15 20:15:16.825 +0000 UTC 2014-04-15 20:17:28.726 +0000 UTC, Après le Tri 2014-04-15 20:15:16.825 +0000 UTC 2014-04-15 20:08:07.226 +0000 UTC 2014-04-15 20:17:28.726 +0000 UTC 2014-04-16 19:57:22.096 +0000 UTC
  • Vous n'avez pas donné une courte et simple de programme de travail pour illustrer votre problème. Voir ma réponse par un exemple.
  • C'est un programme qui marche,c'est juste pour dire que la sortie n'est pas trié, j'ai ajouté une instruction print.Aussi c'est une partie d'un vaste programme.Donc je viens de mentionner les pièces nécessaires.
  • Je ne peux pas copier le code de votre question et de le compiler. Ce n'est pas un programme de travail. Voir ma réponse pour un exemple d'un programme de travail.
  • Le reviews_data_map de la carte est remplie avec les valeurs de Cassandra base de données. C'est pourquoi, même si je colle le code, je pense que vous ne serez pas en mesure de compiler.

InformationsquelleAutor tushR | 2014-04-16