mirror of
https://github.com/golang/go.git
synced 2025-05-20 14:53:23 +00:00
strings: move Clone to stringslite
Follow-up CL help package like unique use Clone. Change-Id: Ie64adf7e1a331f47c3cfe178c368d72fc72493ff GitHub-Last-Rev: 499476cc4acdf58ecf0fec9f7281bfb90edc7c82 GitHub-Pull-Request: golang/go#67106 Reviewed-on: https://go-review.googlesource.com/c/go/+/581956 Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> Auto-Submit: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
7994da4cc1
commit
ae6af9b3d8
@ -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))
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
package strings
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
"internal/stringslite"
|
||||
)
|
||||
|
||||
// Clone returns a fresh copy of s.
|
||||
@ -19,10 +19,5 @@ import (
|
||||
// For strings of length zero the string "" will be returned
|
||||
// and no allocation is made.
|
||||
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))
|
||||
return stringslite.Clone(s)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user