内置函数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))
}