Golang(Go语言)内置函数之copy用法
该函数主要是切片(slice)的拷贝,不支持数组
将第二个slice里的元素拷贝到第一个slice里,拷贝的长度为两个slice中长度较小的长度值
示例:

s := []int{1,2,3}
fmt.Println(s) //[1 2 3]
copy(s,[]int{4,5,6,7,8,9})
fmt.Println(s) //[4 5 6]
有一种特殊用法,将字符串当成[]byte类型的slice
bytes := []byte(“hello world”)
copy(bytes,“ha ha”)


func main() {
	slice1 := []int{1, 2, 3, 4, 5}
	slice2 := []int{5, 4, 3}

	copy(slice1[3:], slice2) // 只会复制slice2的3个元素到slice1的前3个位置
	copy(slice2, slice1)     // 只会复制slice1的前3个元素到slice2中

	fmt.Println(slice1)
	fmt.Println(slice2)

	bytes := []byte("hello world")
	copy(bytes, "ha ha")
	fmt.Println(string(bytes))
}

结果

[1 2 3 5 4]
[1 2 3]
ha ha world