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