aboutsummaryrefslogtreecommitdiff
path: root/src/bytes
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytes')
-rw-r--r--src/bytes/bytes.go8
-rw-r--r--src/bytes/example_test.go2
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