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