Please see this playground. What I want is quiet simple: I want to sort all "records" descending. I cannot figure out how. Reason is that my struct contains one or more records and I'm not sure how to handle that. (f.e. this works fine)
2条回答 默认 最新
- duangan9251 2015-03-16 12:03关注
From your example, you are trying to sort the root element
<records>
instead of the sub-elements<record>
.This example works better, with:
type ById []Record
sort.Sort(sort.Reverse(ById(records.Records)))
Your
Len()
,Swap()
andLess()
methods remain unchanged, but use as a receiver aRecord
instance instead ofRecords
.Output:
{{ records} [{{ record} 64321 http://golang.com} {{ record} 3456 http://www.lommers.org/sampleurl} {{ record} 4 http://www.this-is-my-url.com}]}
As I mention in "How to avoid re-implementing sort.Interface for similar golang structs", this changes with Go 1.8 and commit ad26bb5:
You only define a
Less()
anonymous lambdaa := ById(records.Records) sort.Slice(a, func(i, j int) bool { return a[i] > a[j] })
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 stm32代码移植没反应
- ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
- ¥100 连续两帧图像高速减法
- ¥15 组策略中的计算机配置策略无法下发
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊