切片copy()复制

定义一个切片

package main

import "fmt"

func main() {
  a1 := []int{1, 2, 3, 4}
  a2 := a1 
  fmt.Printf("a1:=%d\na2:=%d", a1, a2)
}

go语言内建的copy()函数可以迅速地将一个切片数据复制到另外一个切片空间中,copy()函数的使用格式如下:

copy(目标切片,数据来源切片)
package main

import "fmt"

func main() {
  a1 := []int{1, 2, 3, 4}
  a2 := a1
  a3 := make([]int, 4, 4)
  copy(a3, a1)
  fmt.Printf("修改前的数据:\na1=%d\na2=%d\na3=%d\n", a1, a2, a3)
  //修改a1[0]的数据为1000再次打印a1,a2,a3查看数据是否一致
  a1[0] = 100
  fmt.Printf("修改后的数据:\na1=%d\na2=%d\na3=%d", a1, a2, a3)
}

我们发现copy只复制源数组的值,源数组发生修改和copy后的数组没有任何关系

posted @ 2023-02-08 20:39  suknna  阅读(42)  评论(0)    收藏  举报