按时间字段对结构体进行排序
您正在尝试按 Go 中的时间字段对结构体进行排序,其中遇到了问题。您提供的代码片段包括使用您的reviews_data结构切片和地图的自定义排序实现:
type timeSlice []reviews_data func (p timeSlice) Len() int { return len(p) } func (p timeSlice) Less(i, j int) bool { return p[i].date.Before(p[j].date) } func (p timeSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
但是,您报告的问题是结果未正确排序。这可能是由于以下几个原因造成的:
改进的解决方案(Go 1.8 及更高版本):
使用 Go 1.8 中引入的 sort.Slice 函数,您可以简化您的排序代码:
sort.Slice(timeSlice, func(i, j int) bool { return timeSlice[i].date.Before(timeSlice[j].date) })
这个改进的解决方案使用标准库的排序功能,确保排序过程更可靠、更高效。
以上是如何按 time.Time 字段正确排序 Go 结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!