Slice Copy操作问题

来源:3-3 切片的操作

胖虎兄

2019-05-21

	arr1:=[]int{0,1,2,3,4,5,6,7}
	arr2:=[] int {}


	copy(arr1,arr2)
	fmt.Println("arr1 : ",arr1)
	fmt.Println("arr2 : ",arr2)

//结果是:
	arr1 :  [0 1 2 3 4 5 6 7]
	arr2 :  []

这是什么鬼???

写回答

1回答

ccmouse

2019-05-26

首先,你应该是想把arr1拷贝到arr2?那么应该是copy(arr2, arr1)

然后arr2作为目标,它的空间要预先分配好。目标slice的大小就是你想拷贝的元素的数目,你这里是0,也就是你想拷贝0个。

所以先arr2:=make([]int, len(arr1))

然后copy(arr2, arr1)

0
1
胖虎兄
非常感谢!
2019-05-26
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程