diff --git a/src/sort/example_interface_test.go b/src/sort/example_interface_test.go index 442204ea9e..72d3017a82 100644 --- a/src/sort/example_interface_test.go +++ b/src/sort/example_interface_test.go @@ -35,10 +35,24 @@ func Example() { } fmt.Println(people) + // There are two ways to sort a slice. First, one can define + // a set of methods for the slice type, as with ByAge, and + // call sort.Sort. In this first example we use that technique. sort.Sort(ByAge(people)) fmt.Println(people) + // The other way is to use sort.Slice with a custom Less + // function, which can be provided as a closure. In this + // case no methods are needed. (And if they exist, they + // are ignored.) Here we re-sort in reverse order: compare + // the closure with ByAge.Less. + sort.Slice(people, func(i, j int) bool { + return people[i].Age > people[j].Age + }) + fmt.Println(people) + // Output: // [Bob: 31 John: 42 Michael: 17 Jenny: 26] // [Michael: 17 Jenny: 26 Bob: 31 John: 42] + // [John: 42 Bob: 31 Jenny: 26 Michael: 17] }