Подтвердить что ты не робот

Как сделать обратный сортировать кусочек целого 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
4b9b3361

Ответ 1

sort.Ints - удобная функция для сортировки нескольких int. Как правило, вам нужно реализовать интерфейс 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)

Ответ 2

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]