尽管有文档,但复制功能的操作可能需要进一步说明。
复制函数将元素从源切片传输到相同元素类型的目标切片。请注意,复制可以将字符串中的字节复制到字节切片。
复制函数的签名是:
<code class="go">func copy(dst, src []Type) int</code>
其中:
复制本质上是将元素从 src 复制到 dst,直到 len(src) 和 len(dst) 元素中的最小值。这意味着它确保目标切片可以容纳源切片中的所有元素而不超出其容量。
考虑以下代码:
<code class="go">package main import "fmt" func main() { src := []int{10, 11, 12, 13, 14} dst := []int{0, 1, 2, 3, 4} n := copy(dst, src) fmt.Println("n =", n, "src =", src, "dst =", dst) }</code>
输出:
n = 5 src = [10 11 12 13 14] dst = [10 11 12 13 14]
在此示例中,整个 src 切片被复制到 dst 切片中,导致两个切片具有相同的元素。
复制函数也可以与重叠切片一起使用。例如:
<code class="go">copy(src, src[1:]) fmt.Println("n =", n, "src =", src)</code>
输出:
n = 4 src = [1 2 3 4 4]
在这种情况下,src 的第一个元素被排除在复制之外,其余四个元素有效地向左移动一个索引,用最后一个元素覆盖第一个元素。
如前所述,复制允许将字符串从字符串复制到字节切片。下面是一个示例:
<code class="go">str := "Hello, World!" data := make([]byte, 5) n = copy(data, str) fmt.Println("n =", n, "str =", str, "data =", data)</code>
输出:
n = 5 str = Hello, World! data = [72 101 108 108 111]
复制函数将字符串的 UTF-8 表示形式的前五个字节复制到数据切片中。
复制函数提供了一种在切片之间传输元素的有效方法,即使它们共享重叠内存也是如此。它的多功能性使其成为 Go 编程中的一个有价值的工具。
以上是Go 中的'copy()”函数如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!