我需要在Go中制作切片的副本,并阅读文档,这里有一个复制功能供我使用。
内置复制功能将元素从源切片复制到目标切片。(在特殊情况下,它还会将字节从字符串复制到字节切片。)源和目标可能会重叠。复制返回复制的元素数量,该数量将是len(src)和len(dst)的最小值。
但是当我这样做时:
arr := []int{1, 2, 3}
tmp := []int{}
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
tmp
与以前一样,我是空的(甚至尝试使用arr, tmp
):
[]
[1 2 3]
您可以在运动场上查看。那为什么不能复制切片?
内置copy(dst, src)
副本min(len(dst), len(src))
元素。
因此,如果您dst
为空(len(dst) == 0
),则不会复制任何内容。
尝试tmp := make([]int, len(arr))
(前往Playground):
arr := []int{1, 2, 3}
tmp := make([]int, len(arr))
copy(tmp, arr)
fmt.Println(tmp)
fmt.Println(arr)
输出(预期):
[1 2 3]
[1 2 3]
不幸的是,这没有记录在builtin
软件包中,而是记录在
Go语言规范中:附加和复制切片
:
复制的元素的数目是最小
len(src)
和len(dst)
。
编辑:
最后,的文档copy()
已更新,现在包含以下事实:将复制源和目标的最小长度:
复制返回复制的元素数量,该数量将是len(src)和len(dst)的 最小值 。
我需要在Go中复制一个切片,并读取文档。有一个复制功能可供我使用。 copy内置函数将元素从源片复制到目标片。(作为一种特殊情况,它还会将字节从字符串复制到字节片。)源和目标可能重叠。Copy返回复制的元素数,它是len(src)和len(dst)中的最小值。 但当我这样做的时候: 我的和以前一样是空的(我甚至尝试使用): 你可以去游乐场看看。那么为什么我不能复制一个切片呢?
错误消息: 错误:表达式的开头非法 静态字符串[]str={“一”,“二”};
我无法理解为什么以下操作不起作用? 我一直收到错误: 我尝试使用通用参数: 我好像想不出来。 我完全错过了什么? 我正在使用OpenJDK 11。
我有自己的目录结构: 在我的Dockerfile中,我将复制到目录,但不幸的是,它没有被复制: 错误:
我今天想使用,但出现了如下错误: 所以我想我应该清除并重新安装(如下所示)https://www.rosehosting.com/blog/how-to-install-pip-on-ubuntu-16-04/)但仍然得到: 我怎样才能提高我的水平