diff options
Diffstat (limited to 'src/bytes')
| -rw-r--r-- | src/bytes/bytes.go | 8 | ||||
| -rw-r--r-- | src/bytes/example_test.go | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/bytes/bytes.go b/src/bytes/bytes.go index 260f32500a..9af177fa88 100644 --- a/src/bytes/bytes.go +++ b/src/bytes/bytes.go @@ -144,6 +144,10 @@ func IndexRune(s []byte, r rune) int { // code points in chars. It returns -1 if chars is empty or if there is no code // point in common. func IndexAny(s []byte, chars string) int { + if chars == "" { + // Avoid scanning all of s. + return -1 + } if len(s) > 8 { if as, isASCII := makeASCIISet(chars); isASCII { for i, c := range s { @@ -176,6 +180,10 @@ func IndexAny(s []byte, chars string) int { // the Unicode code points in chars. It returns -1 if chars is empty or if // there is no code point in common. func LastIndexAny(s []byte, chars string) int { + if chars == "" { + // Avoid scanning all of s. + return -1 + } if len(s) > 8 { if as, isASCII := makeASCIISet(chars); isASCII { for i := len(s) - 1; i >= 0; i-- { diff --git a/src/bytes/example_test.go b/src/bytes/example_test.go index 00e39cadcb..5b7a46058f 100644 --- a/src/bytes/example_test.go +++ b/src/bytes/example_test.go @@ -155,7 +155,7 @@ func ExampleCount() { func ExampleEqual() { fmt.Println(bytes.Equal([]byte("Go"), []byte("Go"))) - fmt.Println(bytes.Equal([]byte("Go"), []byte("go"))) + fmt.Println(bytes.Equal([]byte("Go"), []byte("C++"))) // Output: // true // false |
