跳到主要内容

内置函数copy

前言

Go语言的内置函数copy()可以将一个数组切片复制到另一个数组切片中。

函数定义:

func copy(dst, src []Type) int

基本使用

从较短的slice复制到较长的slice,只会覆盖较长slice的前面一部分。

package main

import "fmt"

func main() {
s1 := []int{1, 2, 3, 4, 5}
s2 := []int{11, 12, 13}

s3 := []int{14, 15, 16}
s4 := []int{6, 7, 8, 9, 10}

copy(s1, s2)
copy(s3, s4)

fmt.Println(s1) // [11 12 13 4 5]
fmt.Println(s2) // [11 12 13]
fmt.Println(s3) // [6 7 8]
fmt.Println(s4) // [6 7 8 9 10]
}

用copy实现字符串拼接

package main

import "fmt"

func main() {
s1 := "hello"
s2 := "world"
// 创建一个切片保存拼接结果
rst := make([]byte, len(s1)+len(s2))

copy(rst, s1)
copy(rst[len(s1):], s2)

fmt.Println(string(rst))
}

参考