结构体排序-接口应用
实现 sort
包的Interface
接口,就可以快速排序。 接口的妙用
package main
import (
"fmt"
"math/rand"
"sort"
)
type Hero struct {
Name string
Age int
}
type HeroSlice []Hero
func (H HeroSlice)Len()int{
return len(H)
}
func (H HeroSlice)Less(i,j int)bool{
return H[i].Age < H[j].Age
}
func (H HeroSlice)Swap(i,j int){
temp := H[i]
H[i] = H[j]
H[j] = temp
}
func main(){
var Her HeroSlice
for i:=0;i<10;i++{
h := Hero{
Name: fmt.Sprintf("英雄~%d",i),
Age: i * rand.Intn(100),
}
fmt.Println(h)
Her = append(Her,h)
}
//fmt.Println(Her)
sort.Sort(Her)
fmt.Println("排序后...")
for _,v := range Her{
fmt.Println(v)
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了