2013-08-20 36 views
19

Git'te bir tam sayı dilimini tersine sıralamaya çalışıyorum.Bir tam sayı diliminin tersini nasıl sıralarım?

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

En yüksekten en alçağa gideceği şekilde nasıl sıralayabilirim? bu yüzden bu

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

Kaynak çalıştılar

[25 5 4 3 1]: Ancak http://golang.org/pkg/sort/#Reverse

, ben

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

cevap

37

sort.Ints aşağıdaki hatayı alıyorum uygun bir fonksiyondur birkaç inters sıralama. Genellikle bir şey sıralamak ve sort.ReverseLess yöntemini yeniden tanımlayan bu arabirimin farklı bir uygulama döndürmek istiyorsanız, sort.Interface arabirimini uygulamak gerekir.

Neyse ki sıralama paketi sort.Interface uygulayan IntSlice adında bir önceden tanımlanmış türü içerir:

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


Çıktı:

[25 5 4 3 1] 
İlgili konular