31 lines
748 B
Go
31 lines
748 B
Go
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package sort_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"sort"
|
||
|
)
|
||
|
|
||
|
// Reverse embeds a sort.Interface value and implements a reverse sort over
|
||
|
// that value.
|
||
|
type Reverse struct {
|
||
|
// This embedded Interface permits Reverse to use the methods of
|
||
|
// another Interface implementation.
|
||
|
sort.Interface
|
||
|
}
|
||
|
|
||
|
// Less returns the opposite of the embedded implementation's Less method.
|
||
|
func (r Reverse) Less(i, j int) bool {
|
||
|
return r.Interface.Less(j, i)
|
||
|
}
|
||
|
|
||
|
func ExampleInterface_reverse() {
|
||
|
s := []int{5, 2, 6, 3, 1, 4} // unsorted
|
||
|
sort.Sort(Reverse{sort.IntSlice(s)})
|
||
|
fmt.Println(s)
|
||
|
// Output: [6 5 4 3 2 1]
|
||
|
}
|