mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
bytes, strings: add TrimPrefix and TrimSuffix
Everybody either gets confused and thinks this is TrimLeft/TrimRight or does this by hand which gets repetitive looking. R=rsc, kevlar CC=golang-dev https://golang.org/cl/7239044
This commit is contained in:
parent
fe14ee52cc
commit
e515d80d5d
21 changed files with 117 additions and 54 deletions
|
|
@ -515,6 +515,24 @@ func TrimFunc(s []byte, f func(r rune) bool) []byte {
|
|||
return TrimRightFunc(TrimLeftFunc(s, f), f)
|
||||
}
|
||||
|
||||
// TrimPrefix returns s without the provided leading prefix string.
|
||||
// If s doesn't start with prefix, s is returned unchanged.
|
||||
func TrimPrefix(s, prefix []byte) []byte {
|
||||
if HasPrefix(s, prefix) {
|
||||
return s[len(prefix):]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// TrimSuffix returns s without the provided trailing suffix string.
|
||||
// If s doesn't end with suffix, s is returned unchanged.
|
||||
func TrimSuffix(s, suffix []byte) []byte {
|
||||
if HasSuffix(s, suffix) {
|
||||
return s[:len(s)-len(suffix)]
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
// IndexFunc interprets s as a sequence of UTF-8-encoded Unicode code points.
|
||||
// It returns the byte index in s of the first Unicode
|
||||
// code point satisfying f(c), or -1 if none do.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue