当前位置: > > > > 如何在 go lang 中对地图进行反向排序并将其发送到模型
来源:stackoverflow
2024-04-25 18:45:35
0浏览
收藏
在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天就整理分享《如何在 go lang 中对地图进行反向排序并将其发送到模型》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容
我想发送存储在地图中的图书列表的相反顺序,并将其发送到模型,而不是按当前顺序发送到地图。
我需要以输入日期(即 pubdate)的相反顺序显示一个列表,以便网页(模型)显示最近添加的书籍,而不是首先添加的书籍。
我已经尝试了列出的许多不同的排序方法,但我不知道如何将其发送到模型。例如,我尝试过 导入“排序”
var m map[int]string var keys []int for k := range m { keys = append(keys, k) } sort.ints(keys) for _, k := range keys { fmt.println("key:", k, "value:", m[k]) }
我也尝试过 sort.slice(ad, func(i, j int) bool {
return ad[i].date.before(ad[j].date)})
还有很多其他人,但我似乎无法进行任何工作。
type Book struct { ID int64 `json:"id"` Title string `json:"title"` Author string `json:"author"` pubDate time.Time `json:"pubDate"` } var bookModels = map[string]*Book{} s := res.NewService("library") // Add handlers for "library.book.$id" models s.Handle( "book.$id", res.Access(res.AccessGranted), res.GetModel(getBookHandler), res.Set(setBookHandler), ) // Add handlers for "library.books" collection s.Handle( "books", res.Access(res.AccessGranted), res.GetCollection(getBooksHandler), res.New(newBookHandler), res.Call("delete", deleteBookHandler), ) func getBookHandler(r res.ModelRequest) { book := bookModels[r.ResourceName()] if book == nil { r.NotFound() return } r.Model(book) }
主要是我收到的错误是地图不允许索引,或者类型错误,或者无法访问字段等…如何使用地图并将其发送到模型并确保您拥有最新的地图网页上首先列出的项目?
解决方案
Go 中的映射始终以随机顺序返回,除非您使用键来访问值。所以你不能颠倒地图的顺序,因为一开始就没有顺序
今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注公众号,一起学习编程~