golang结构体切片排序
- 示例
package main
import (
"log"
"sort"
"strconv"
)
type User struct{
index int // 排序字段
// 其它需要字段 ...
name string
}
func main(){
users := make([]*User,0)
arr:=[]int{2,4,5,6,1,3}
for _,v := range arr{
user :=&User{
index: v,
name: "用户"+ strconv.Itoa(v),
}
users = append(users, user)
}
// 排序 -- 升序 由小到大
sort.SliceStable(users, func(i int, j int) bool {
return users[i].index < users[j].index
})
// 已经按照索引排序
for _,val := range users{
log.Println(*val)
}
}