【发布时间】:2018-03-03 20:24:30
【问题描述】:
我有如下切片
{string, int }
[{zaa 1} {aab 1} {xac 1}]
在这种情况下 int side equal 所以不需要按字母顺序排序
如果我的切片如下所示
[{zaa 1} {aab 4} {xac 2}]
我需要使用数值排序,我该怎么做?
现在我正在使用 golang 给出的排序
type ByStringValue []string
type ByNumericValue []WeightBaseResourceInfo
func (a ByStringValue) Len() int { return len(a) }
func (a ByStringValue) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByStringValue) Less(i, j int) bool { return a[i] < a[j] }
func (a ByNumericValue) Len() int { return len(a) }
func (a ByNumericValue) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a ByNumericValue) Less(i, j int) bool {
w1 := a[i].Weight
w2 := a[j].Weight
return w1 > w2
}
【问题讨论】: