首页 > 编程笔记 > Go语言笔记 阅读:4

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 中。分别打印上述两次复制切片后的结果。代码如下:
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 的所有元素

相关文章