]> Cypherpunks.ru repositories - gostls13.git/blob - src/strings/compare.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / src / strings / compare.go
1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package strings
6
7 // Compare returns an integer comparing two strings lexicographically.
8 // The result will be 0 if a == b, -1 if a < b, and +1 if a > b.
9 //
10 // Compare is included only for symmetry with package bytes.
11 // It is usually clearer and always faster to use the built-in
12 // string comparison operators ==, <, >, and so on.
13 func Compare(a, b string) int {
14         // NOTE(rsc): This function does NOT call the runtime cmpstring function,
15         // because we do not want to provide any performance justification for
16         // using strings.Compare. Basically no one should use strings.Compare.
17         // As the comment above says, it is here only for symmetry with package bytes.
18         // If performance is important, the compiler should be changed to recognize
19         // the pattern so that all code doing three-way comparisons, not just code
20         // using strings.Compare, can benefit.
21         if a == b {
22                 return 0
23         }
24         if a < b {
25                 return -1
26         }
27         return +1
28 }