我想发送存储在 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/