登录
首页 >  Golang >  Go问答

如何在 go lang 中对地图进行反向排序并将其发送到模型

来源:stackoverflow

时间:2024-04-25 18:45:35 185浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天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的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>