这是copy的一个坑,如果要做slice复制,需要使用copy(dst, src)函数
但是copy实际复制的元素个数是从两个slice中取最小值,即min(len(dst), len(src)),如果len(dst)=0则没有办法完成复制。
func main() {
src := []int{1, 2, 3}
dst := make([]int, 0)
copy(dst, src)
fmt.Print(dst) // []
}
func main() {
src := []int{1, 2, 3}
dst := make([]int, len(src))
copy(dst, src)
fmt.Print(dst) //[1 2 3]
}
本文详细介绍了在Go语言中如何正确地进行切片(slice)的复制操作。文章指出使用内置的copy函数时需要注意源切片(src)和目标切片(dst)长度的影响,特别是当目标切片长度为0时,无法完成复制。通过示例展示了不同情况下copy函数的行为差异。
1917

被折叠的 条评论
为什么被折叠?



