如何反转排序整数Go?

时间:2013-08-20 19:12:24

标签: go

我试图在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

3 个答案:

答案 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)
}

Playground


输出:

[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

https://golang.org/pkg/sort#Slice