Skip to content

Commit

Permalink
sort: document requirements of Less relation
Browse files Browse the repository at this point in the history
Fixes #34915

Change-Id: Ia62ff3b6f198ddcd79e8afc7b4f5514a44f2442c
Reviewed-on: https://go-review.googlesource.com/c/go/+/261959
Reviewed-by: Rob Pike <[email protected]>
Reviewed-by: Ian Lance Taylor <[email protected]>
Reviewed-by: Akhil Indurti <[email protected]>
Trust: Alberto Donizetti <[email protected]>
  • Loading branch information
adonovan authored and ianlancetaylor committed Oct 14, 2020
1 parent 9c56300 commit fbf62be
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/sort/sort.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ package sort
// A type, typically a collection, that satisfies sort.Interface can be
// sorted by the routines in this package. The methods require that the
// elements of the collection be enumerated by an integer index.
//
// The sort routines require that the Less method implements a strict weak
// ordering; see https://en.wikipedia.org/wiki/Weak_ordering.
// The < operations on ints and strings are examples of such an ordering,
// whereas the < operation on floating-point numbers is not, due to the
// behavior of not-a-number (NaN) values.
type Interface interface {
// Len is the number of elements in the collection.
Len() int
Expand Down Expand Up @@ -275,8 +281,9 @@ func (p IntSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
// Sort is a convenience method.
func (p IntSlice) Sort() { Sort(p) }

// Float64Slice attaches the methods of Interface to []float64, sorting in increasing order
// (not-a-number values are treated as less than other values).
// Float64Slice attaches the methods of Interface to []float64, sorting in increasing order.
// In order to satisfy the ordering requirements of the Less method, not-a-number (NaN)
// values are treated as less than other values.
type Float64Slice []float64

func (p Float64Slice) Len() int { return len(p) }
Expand Down

0 comments on commit fbf62be

Please sign in to comment.