golang学习之路-21切片copy

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])
   }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学渣王菜菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值