package main import "fmt" func main() { //copy(destSlice,srcSlice[]T)int //特点: 1、2->1 //2.必须承载复制元素到个数,来源和目标类型一致 //copy的返回值表示实际发生复制的元素个数 slice1 :=[]int{1,2,3,4,5} slice2 :=[]int{5,4,3} copy(slice2,slice1)// fmt.Println(slice1,slice2) copy(slice1,slice2)//只会复制slice2的元素到slice1中,并且从第一位开始插入 fmt.Println(slice1,slice2) //设置元素的数量为1000 const elementConut = 1000 //预分配足够多的元素切片 srcData :=make([]int,elementConut) //将切片赋值 for i:=0;i<elementConut ;i++ { srcData[i] = i } //引用切片数据 reData := srcData//此处为引用,只是指针指向了src的地址 //预分配足够多的元素切片 copyData :=make([]int,elementConut) //将数据复制到新的切片空间中 copy(copyData,srcData) //修改原始数据到第一个元素 println(srcData[0],reData[0]) srcData[0] = 999 //打印引用切片到第一个元素 println(reData[0],srcData[0]) //打印复制切片到第一个和最后一个元素 println(copyData[0],copyData[elementConut-1]) //copy原始数据从4到6(顾头不顾尾) copy(copyData,srcData[4:6]) for i:=0;i<5;i++ { fmt.Printf("%d",copyData[i]) } }
golang学习之路-21切片copy
猜你喜欢
转载自blog.csdn.net/qq_37463791/article/details/103430041
今日推荐
周排行