2016-03-01 15:57:46 -07:00
|
|
|
// Copyright 2015 The Go Authors. All rights reserved.
|
2015-01-18 10:50:22 -07:00
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package strings
|
|
|
|
|
|
|
|
// Compare returns an integer comparing two strings lexicographically.
|
|
|
|
// The result will be 0 if a==b, -1 if a < b, and +1 if a > b.
|
|
|
|
//
|
|
|
|
// Compare is included only for symmetry with package bytes.
|
|
|
|
// It is usually clearer and always faster to use the built-in
|
|
|
|
// string comparison operators ==, <, >, and so on.
|
|
|
|
func Compare(a, b string) int {
|
|
|
|
// NOTE(rsc): This function does NOT call the runtime cmpstring function,
|
|
|
|
// because we do not want to provide any performance justification for
|
|
|
|
// using strings.Compare. Basically no one should use strings.Compare.
|
|
|
|
// As the comment above says, it is here only for symmetry with package bytes.
|
|
|
|
// If performance is important, the compiler should be changed to recognize
|
|
|
|
// the pattern so that all code doing three-way comparisons, not just code
|
|
|
|
// using strings.Compare, can benefit.
|
|
|
|
if a == b {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
if a < b {
|
|
|
|
return -1
|
|
|
|
}
|
|
|
|
return +1
|
|
|
|
}
|