我试图在Go中对一片整数进行反向排序。
example := []int{1,25,3,5,4}
sort.Ints(example) // this will give me a slice sorted from 1 to the highest number
如何对其进行排序以使其从最高到最低?所以[25 5 4 3 1]
我试过这个
sort.Sort(sort.Reverse(sort.Ints(keys)))
来源:http://golang.org/pkg/sort/#Reverse
但是,我收到以下错误
# command-line-arguments
./Roman_Numerals.go:31: sort.Ints(keys) used as value
答案 0 :(得分:48)
sort.Ints是一个方便的函数来排序几个整数。通常,如果要对某些内容进行排序,则需要实现sort.Interface接口,而sort.Reverse只返回重新定义Less
方法的该接口的不同实现。
幸运的是,sort包中包含一个名为IntSlice的预定义类型,它实现了sort.Interface:
keys := []int{3, 2, 8, 1}
sort.Sort(sort.Reverse(sort.IntSlice(keys)))
fmt.Println(keys)
答案 1 :(得分:6)
package main
import (
"fmt"
"sort"
)
func main() {
example := []int{1, 25, 3, 5, 4}
sort.Sort(sort.Reverse(sort.IntSlice(example)))
fmt.Println(example)
}
输出:
[25 5 4 3 1]
答案 2 :(得分:0)
您可以只使用 // Start drawing and force the first position
var event = $.Event('click');
event.coordinate = point.getGeometry().getCoordinates();
draw.startDrawing_(event);
,而不是使用两个函数调用和一个强制转换:
sort.Slice