go语言copy函数介绍的疑惑
发布网友
发布时间:2022-05-20 13:39
我来回答
共2个回答
热心网友
时间:2023-10-25 23:45
go语言我不懂,但是看似乎懂了,仅供参考
意思是源和目标可以为同一目标,复制的数量是源或者目标的元素最小数量
比如例子中的copy(s,a[0]:)
a虽然一共有8个元素,但是s只有6<len(det)>个元素 ,看上面的makeint是6
所以这里只复制了最小数量6个元素,因此a的012345被复制进了s
第二个
copy(s,s[2]:)
这里是从s[2]开始,所以len是6-2=4,而且因为4<6,只复制4个元素
因此
0 1 2 3 4 5 复制后4个元素到前面结果就是:
2 3 4 5 4 5 //这个就是可以源和目标可重叠,
上面的也说明了按照len(str)和len(det)中最少值
热心网友
时间:2023-10-25 23:45
“重叠”这段话,英文源文是“The source and destination may overlap“。我觉得可以理解为溢出或短缺。
比如源的长度4个,目标长度是6,则只能复制4个到目标slice中。目标中最后两个值不会被改变
如果源的长度是6个,而目标只有4个,则也只会复制4个,因为目标容量小,放不下6个。源中的最后两个值就不会参与复制了。