1
0
mirror of https://github.com/golang/go synced 2024-11-25 13:57:57 -07:00

strings: add IndexByte, for consistency with bytes package

I always forget which package has it.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/12214044
This commit is contained in:
Brad Fitzpatrick 2013-08-01 11:17:26 -07:00
parent b99fa81555
commit 9742003ffc

View File

@ -130,14 +130,7 @@ func Index(s, sep string) int {
case n == 0: case n == 0:
return 0 return 0
case n == 1: case n == 1:
c := sep[0] return IndexByte(s, sep[0])
// special case worth making fast
for i := 0; i < len(s); i++ {
if s[i] == c {
return i
}
}
return -1
case n == len(s): case n == len(s):
if sep == s { if sep == s {
return 0 return 0
@ -167,6 +160,16 @@ func Index(s, sep string) int {
return -1 return -1
} }
// IndexByte returns the index of the first instance of c in s, or -1 if c is not present in s.
func IndexByte(s string, c byte) int {
for i := 0; i < len(s); i++ {
if s[i] == c {
return i
}
}
return -1
}
// LastIndex returns the index of the last instance of sep in s, or -1 if sep is not present in s. // LastIndex returns the index of the last instance of sep in s, or -1 if sep is not present in s.
func LastIndex(s, sep string) int { func LastIndex(s, sep string) int {
n := len(sep) n := len(sep)