zhoushuguang / beyond

Based on the go-zero framework of large-scale microservices practical project, see all say yes!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于article-rpc logic层的cmp包以及 slices包引用问题

diy0663 opened this issue · comments

beyond/application/article/rpc/internal/logic/articleslogic.go
里面的cmp包以及 slices 是哪来的?

后面加的,使用mapreduce获取文章列表是无序的,因为返回的文章是需要排序,所以使用了slices.SortFunc对获取的文章进行排序,排序的方法有很多种,你也可以使用其他的排序方法
关于这个部分的改动可以查看这个#23

slices.SortFunc 是 go 1.21版本增加的方法, 相关连接 Go 1.21 Release Notes
旧版本可使用以下实现切片排序

var cmpFunc func(i, j int) bool
if sortField == "like_num" {
cmpFunc = func(i, j int) bool {
		return articles[i].LikeNum > articles[j].LikeNum
	}
} else {
	cmpFunc = func(i, j int) bool {
		return articles[i].PublishTime.Unix() > articles[j].PublishTime.Unix()
	}
}
sort.Slice(articles, cmpFunc)