golang将切片或数组根据某个字段进行分组

package main

import (
	"fmt"
	"sort"
)

type Person struct {
	Name string
	Age int
}

func main() {
	p1 := Person{"Tom",20}
	p2 := Person{"Lily",21}
	p3 := Person{"Linda",23}
	p4 := Person{"Jass",25}
	p5 := Person{"Tonny",20}
	p6 := Person{"Pite",25}
	p7 := Person{"Paul",21}
	p8 := Person{"Kriss",27}
	p9 := Person{"Jake",23}
	p10 := Person{"Rose",20}

	personList := []Person{}
	personList = append(personList,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10)
	fmt.Println("分组前的数据:",personList)
	fmt.Println("分组后的数据:",splitSlice(personList))
}

//按某个字段排序
type sortByAge []Person

func (s sortByAge) Len() int           { return len(s) }
func (s sortByAge) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
func (s sortByAge) Less(i, j int) bool { return s[i].Age < s[j].Age}



//切片分组
func splitSlice(list []Person) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值