@@ -36,25 +36,6 @@ func Join(elems []string, sep string) string {
3636 return s
3737}
3838
39- func HasPrefix(s string, prefix string) bool {
40- l := len(prefix)
41-
42- if len(s) >= l {
43- return s[:l] == prefix
44- }
45- return false
46- }
47-
48- func HasSuffix(s string, suffix string) bool {
49- l := len(suffix)
50-
51- if len(s) >= l {
52- l *= -1
53- return s[l:] == suffix
54- }
55- return false
56- }
57-
5839func Count(s string, substr string) int {
5940 lenS := len(s)
6041 lenSub := len(substr)
@@ -162,15 +143,19 @@ func ReplaceAll(s string, old string, new string) string {
162143}
163144
164145func CutPrefix(s string, prefix string) (string, bool) {
165- if HasPrefix(s, prefix) {
166- return s[len(prefix):], true
146+ l := len(prefix)
147+
148+ if s[:l] == prefix {
149+ return s[l:], true
167150 }
168151 return s, false
169152}
170153
171154func CutSuffix(s string, suffix string) (string, bool) {
172- if HasSuffix(s, suffix) {
173- return s[0 : len(s)-len(suffix)], true
155+ l := len(suffix)
156+
157+ if s[l*-1:] == suffix {
158+ return s[0 : len(s)-l], true
174159 }
175160 return s, false
176161}
@@ -188,6 +173,14 @@ func Cut(s string, sep string) (string, string, bool) {
188173 return s, "", false
189174}
190175
176+ func HasPrefix(s string, prefix string) bool {
177+ return s[:len(prefix)] == prefix
178+ }
179+
180+ func HasSuffix(s string, suffix string) bool {
181+ return s[len(suffix)*-1:] == suffix
182+ }
183+
191184func TrimPrefix(s string, prefix string) string {
192185 s, c := CutPrefix(s, prefix)
193186 return s
0 commit comments