Go语言copy()函数的用法(附带实例)
copy() 函数是 Go 语言的内置函数,包含两个参数,这两个参数分别是目标切片和源切片。
copy() 函数用于把源切片复制到目标切片中。注意,目标切片和源切片的元素类型必须相同。此外,copy() 函数具有一个返回值,这个返回值表示完成复制操作的元素个数。
【实例】切片的复制。分别声明并初始化两个 int 类型的切片,即 slice_1 和 slice_2;切片 slice_1 包含 1、3、5、7 和 9 等 5 个元素,切片 slice_2 包含 2、4 和 6 等 3 个元素。
把切片 slice_2 复制到切片 slice_1 中。先让切片 slice_1 恢复原值,再把切片 slice_1 复制到切片 slice_2 中。分别打印上述两次复制切片后的结果。代码如下:
copy() 函数用于把源切片复制到目标切片中。注意,目标切片和源切片的元素类型必须相同。此外,copy() 函数具有一个返回值,这个返回值表示完成复制操作的元素个数。
【实例】切片的复制。分别声明并初始化两个 int 类型的切片,即 slice_1 和 slice_2;切片 slice_1 包含 1、3、5、7 和 9 等 5 个元素,切片 slice_2 包含 2、4 和 6 等 3 个元素。
把切片 slice_2 复制到切片 slice_1 中。先让切片 slice_1 恢复原值,再把切片 slice_1 复制到切片 slice_2 中。分别打印上述两次复制切片后的结果。代码如下:
package main import "fmt" func main() { slice_1 := []int{1, 3, 5, 7, 9} // 声明并初始化包含 5 个 int 类型元素的切片 slice_1 slice_2 := []int{2, 4, 6} // 声明并初始化包含 3 个 int 类型元素的切片 slice_2 /* 把切片 slice_1 作为目标切片 把切片 slice_2 作为源切片 把切片 slice_2 复制到切片 slice_1 中 */ copy(slice_1, slice_2) fmt.Println("slice_1:", slice_1) // 让切片 slice_1 恢复原值 slice_1 = []int{1, 3, 5, 7, 9} /* 把切片 slice_2 作为目标切片 把切片 slice_1 作为源切片 把切片 slice_1 复制到切片 slice_2 中 */ copy(slice_2, slice_1) fmt.Println("slice_2:", slice_2) }运行结果如下:
slice_1: [2 4 6 7 9] // 切片 slice_2 的所有元素只替换切片 slice_1 的前 3 个元素
slice_2: [1 3 5] // 切片 slice_1 的前 3 个元素替换切片 slice_2 的所有元素