map 排序
根据key 排序
从小到大
sort.Sort(sort.IntSlice(keys))
从大到小
sort.Sort(sort.Reverse(sort.IntSlice(keys)))
根据value 排序
package main
import (
"fmt"
"sort"
)
func main() {
mapInfo := map[string]int32{
"roy":18,
"kitty":16,
"hugo":21,
"tina":35,
"jason":23,
}
type peroson struct {
Name string
Age int32
}
var lstPerson []peroson
for k, v := range mapInfo {
lstPerson = append(lstPerson, peroson {k, v})
}
sort.Slice(lstPerson, func(i, j int) bool {
return lstPerson[i].Age < lstPerson[j].Age // 升序
return lstPerson[i].Age > lstPerson[j].Age // j降序
})
fmt.Println(lstPerson)
}
结构体排序
sort.Slice(lstPerson, func(i, j int) bool {
return lstPerson[i].Age < lstPerson[j].Age // 升序
return lstPerson[i].Age > lstPerson[j].Age // j降序
})
```
文章介绍了在Go语言中如何对Map的Key进行从小到大和从大到小的排序,以及如何基于Map的Value创建结构体并进行排序。示例代码展示了如何使用sort.Slice对结构体数组按Age属性进行升序和降序排列。
628

被折叠的 条评论
为什么被折叠?



