sorting - 如何对 map 进行反向排序并将其发送到go lang中的模型

标签 sorting dictionary go model reverse

我想发送存储在 map 中的书籍列表的相反顺序,并将其发送到模型而不是 map 中的当前顺序。

我需要以输入日期的相反顺序显示列表,即 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)
}

主要是我收到 map 不允许索引、类型错误或无法访问字段等错误...如何使用 map 并将其发送到模型并确保您拥有最新的在网页上首先列出的项目?

最佳答案

go 中的映射总是以随机顺序返回,除非您使用键访问值。所以你不能颠倒 map 的顺序,因为一开始就没有顺序

关于sorting - 如何对 map 进行反向排序并将其发送到go lang中的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56342903/

相关文章:

python - 如何在没有WINWORD的情况下解析.doc文档?

facebook - 在 golang 中测试第三方包

javascript - 为什么有些 JavaScript 函数需要创建一个新变量,而其他函数则不需要?

python - 对包含列表的列表进行排序

mongodb - 在 Erlang 中创建和修改 MongoDB 中的映射

javascript - HTML map 检查重叠

go - 无需接口(interface)即可将多种类型合二为一

linux - 根据星期几对文件进行排序

algorithm - 用于堆排序的缓存高效堆

android - 在我的 Android 应用程序中使用 map 应用程序