Go: Copy function explained
The built-in copy
function copies elements into a destination slice dst
from a source slice src
:
func copy(dst, src []Type) int
It returns the number of elements copied, which will be the minimum of len(dst)
and len(src)
.
The result does not depend on whether the arguments overlap.
Special case
It is legal to copy bytes from a string to a slice of bytes:
copy(dst []byte, src string) int
Examples
Example: Copy from one slice to another:
var s = make([]int, 3)
n := copy(s, []int{0, 1, 2, 3}) // n == 3, s == []int{0, 1, 2}
Example: Copy from a slice to itself:
s := []int{0, 1, 2}
n := copy(s, s[1:]) // n == 2, s == []int{1, 2, 2}
Example: Copy from a string to a byte slice:
var b = make([]byte, 5)
copy(b, "Hello, world!") // b == []byte("Hello")
Comments
Be the first to comment!