lin
2025-06-05 ed3dd9d3e7519a82bb871d5eedb24a2fa0c91f47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Copyright 2015 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 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
}