2013-08-20 9 views
19

私はGoで整数スライスを逆ソートしようとしています。整数のスライスを逆順にソートするにはどうすればよいですか?

example := []int{1,25,3,5,4} 
    sort.Ints(example) // this will give me a slice sorted from 1 to the highest number 

どのようにソートして最高から最低にするか?私はこの

sort.Sort(sort.Reverse(sort.Ints(keys))) 

ソースしようとしている[25 5 4 3 1]

http://golang.org/pkg/sort/#Reverse

しかし、私は

# command-line-arguments 
./Roman_Numerals.go:31: sort.Ints(keys) used as value 

答えて

37

sort.Ints以下のエラーを取得していますが便利な機能ですいくつかのintをソートします。何かをソートしたい場合は、sort.ReverseLessメソッドを再定義するインターフェイスの別の実装を返すだけで、通常sort.Interfaceインターフェイスを実装する必要があります。

は幸いにもソートパッケージはsort.Interfaceを実装 IntSliceと呼ばれる事前に定義されたタイプが含まれています

keys := []int{3, 2, 8, 1} 
sort.Sort(sort.Reverse(sort.IntSlice(keys))) 
fmt.Println(keys) 
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] 
関連する問題