diff options
Diffstat (limited to 'src/internal/stringslite/strings.go')
-rw-r--r-- | src/internal/stringslite/strings.go | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/internal/stringslite/strings.go b/src/internal/stringslite/strings.go index c0c6e2dce5..4114b86130 100644 --- a/src/internal/stringslite/strings.go +++ b/src/internal/stringslite/strings.go @@ -8,7 +8,10 @@ // Tests for these functions are in the strings package. package stringslite -import "internal/bytealg" +import ( + "internal/bytealg" + "unsafe" +) func HasPrefix(s, prefix string) bool { return len(s) >= len(prefix) && s[0:len(prefix)] == prefix @@ -136,3 +139,12 @@ func TrimSuffix(s, suffix string) string { } return s } + +func Clone(s string) string { + if len(s) == 0 { + return "" + } + b := make([]byte, len(s)) + copy(b, s) + return unsafe.String(&b[0], len(b)) +} |