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

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}

Copy from a slice to itself:

s := []int{0, 1, 2}
n := copy(s, s[1:]) // n == 2, s == []int{1, 2, 2}

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!