mirror of
https://github.com/golang/go
synced 2024-11-25 16:17:56 -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:
parent
b99fa81555
commit
9742003ffc
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user