mirror of
https://github.com/golang/go
synced 2024-11-26 04:37:59 -07:00
bytes.Copy
R=rsc DELTA=38 (38 added, 0 deleted, 0 changed) OCL=29895 CL=29895
This commit is contained in:
parent
78933226f1
commit
52e5d061c7
@ -1,5 +1,6 @@
|
|||||||
bignum.install: fmt.install
|
bignum.install: fmt.install
|
||||||
bufio.install: io.install os.install utf8.install
|
bufio.install: io.install os.install utf8.install
|
||||||
|
bytes.install: utf8.install
|
||||||
container/list.install:
|
container/list.install:
|
||||||
container/vector.install:
|
container/vector.install:
|
||||||
crypto/aes.install: os.install
|
crypto/aes.install: os.install
|
||||||
|
@ -16,6 +16,7 @@ GC=6g
|
|||||||
DIRS=\
|
DIRS=\
|
||||||
bignum\
|
bignum\
|
||||||
bufio\
|
bufio\
|
||||||
|
bytes\
|
||||||
container/list\
|
container/list\
|
||||||
container/vector\
|
container/vector\
|
||||||
crypto/aes\
|
crypto/aes\
|
||||||
|
@ -41,6 +41,15 @@ func Equal(a, b []byte) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Copy copies the source to the destination, stopping when the source
|
||||||
|
// is all transferred. The caller must guarantee that there is enough
|
||||||
|
// room in the destination.
|
||||||
|
func Copy(dst, src []byte) {
|
||||||
|
for i, x := range src {
|
||||||
|
dst[i] = x
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Explode splits s into an array of UTF-8 sequences, one per Unicode character (still arrays of bytes).
|
// Explode splits s into an array of UTF-8 sequences, one per Unicode character (still arrays of bytes).
|
||||||
// Invalid UTF-8 sequences become correct encodings of U+FFF8.
|
// Invalid UTF-8 sequences become correct encodings of U+FFF8.
|
||||||
func Explode(s []byte) [][]byte {
|
func Explode(s []byte) [][]byte {
|
||||||
|
@ -128,3 +128,30 @@ func TestSplit(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CopyTest struct {
|
||||||
|
a string;
|
||||||
|
b string;
|
||||||
|
res string;
|
||||||
|
}
|
||||||
|
var copytests = []CopyTest {
|
||||||
|
CopyTest{ "", "", "" },
|
||||||
|
CopyTest{ "a", "", "a" },
|
||||||
|
CopyTest{ "a", "a", "a" },
|
||||||
|
CopyTest{ "a", "b", "b" },
|
||||||
|
CopyTest{ "xyz", "abc", "abc" },
|
||||||
|
CopyTest{ "wxyz", "abc", "abcz" },
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCopy(t *testing.T) {
|
||||||
|
for i := 0; i < len(copytests); i++ {
|
||||||
|
tt := copytests[i];
|
||||||
|
dst := io.StringBytes(tt.a);
|
||||||
|
Copy(dst, io.StringBytes(tt.b));
|
||||||
|
result := string(dst);
|
||||||
|
if result != tt.res {
|
||||||
|
t.Errorf(`Copy("%s", "%s") = "%s"; want "%s"`, tt.a, tt.b, result, tt.res);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user