go map 结构体排序

文章介绍了在Go语言中如何对Map的Key进行从小到大和从大到小的排序,以及如何基于Map的Value创建结构体并进行排序。示例代码展示了如何使用sort.Slice对结构体数组按Age属性进行升序和降序排列。
摘要由CSDN通过智能技术生成

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降序
	})
	```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值