package main
import (
"fmt"
"math/rand"
"sort"
)
type MapsSort struct {
Key string
MapList []map[string] interface{}
}
func (m *MapsSort) Len() int {
return len(m.MapList)
}
func (m *MapsSort) Less(i, j int) bool {
return m.MapList[i][m.Key].(float64) > m.MapList[j][m.Key].(float64)
}
func (m *MapsSort) Swap(i, j int) {
m.MapList[i],m.MapList[j] = m.MapList[j],m.MapList[i]
}
func main() {
mapsSort := MapsSort{}
mapsSort.Key = "data"
maps:= make([]map[string] interface{},0)
for i:=0 ; i<10;i++ {
data := rand.Float64()
mapTemp := make(map[string] interface{})
mapTemp["data"] = data
mapTemp["aaa"] = fmt.Sprintf("aaa%d",i)
maps = append(maps, mapTemp)
}
mapsSort.MapList = maps
fmt.Println(mapsSort)
sort.Sort(&mapsSort)
fmt.Println(mapsSort)
}
来源:oschina
链接:https://my.oschina.net/u/4408225/blog/4281725