From ff3123d1f66992f51d326c844d8ecf1f5ab8e75d Mon Sep 17 00:00:00 2001 From: Agniva De Sarker Date: Sat, 23 Sep 2017 22:29:42 +0530 Subject: [PATCH] sort: update main example to use Slice along with Sort This is to let sort.Slice get more prominence since it's the most common use case. Fixes #21989 Change-Id: I0b180cc20256f5f09065b722e191c508c872f4f7 Reviewed-on: https://go-review.googlesource.com/65710 Reviewed-by: Rob Pike Reviewed-by: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot --- src/sort/example_interface_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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] } -- 2.48.1