| // 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] |
| } |